I receive this error after trying to set up LAMP by following this tutorial, and I find myself receiving the above error after trying to set up phpmyadmin.
Fatal error: Call to undefined function mb_detect_encoding() in
on line 177
I followed the advice over here: PHP Fatal error when trying to access phpmyadmin mb_detect_encoding, and made those changes.
When I run
phpinfo(), I see that support for MySQL and
mb_string are enabled as shown below:
Install the gd library also.
check this link
There’s a much easier way than recompiling PHP. Just yum install the required mbstring library:
yum --enablerepo=remi install php-mbstring
Oh, and don’t forget to restart apache afterward.
Mbstring is a non-default extension. This means it is not enabled by default. You must explicitly enable the module with the configure option.
In case your php version is 7.0:
sudo apt-get install php7.0-mbstring sudo service apache2 restart
In case your php version is 5.6:
sudo apt-get install php5.6-mbstring sudo service apache2 restart
On Windows open the file php.ini and make this changes:
Remove the comment and point to the ext directory
; extension_dir = “./” -> extension_dir = “C:/Php/ext”
Remove the comment of this extensions
Restart apache service
httpd -k restart
When I opened my php.ini file, “extension_dir” line looked like following :
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
which i changed to:
extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"
and it worked.
Under Windows / WAMP there doesn’t seem to be any php_mbstring.dll dependencies on the GD2 extension, the MySQL extensions, nor on external dlls/libs:
php5ts.dll,OK MSVCR110.dll,OK KERNEL32.dll,OK
php5ts.dll,OK USER32.dll,OK GDI32.dll,OK KERNEL32.dll,OK MSVCR110.dll,OK
Whatever php_mbstring already needs, it’s built-in (statically compiled right into the DLL).
Call to undefined function mb_detect_encoding()
This error is also very specific and deterministic…
mb_detect_encoding() didn’t fail because php_gd, php_mysql, php_mysqli, or another extension was not loaded; it simply was NOT found.
I’m guessing that all the answers that are reported as valid (for Windows / WAMP), that say to load other extensions, to change php.ini
extension_dir paths (if this one was wrong to begin with, NO extensions would load), etc, work more due to a) un-commenting the
extension = php_mbstring.dll line, or b) restarting Apache or the computer (for changes to take effect).
On Windows, most of the time the problem is that php_mbstring.dll is either:
Blocked by Windows. Unblock it by right-clicking it, check Properties.
Or PHP can’t load php_mbstring.dll due to another version getting loaded (e.g., from some improper PHP DLLs install into C:\Windows\system32), some version mismatch, missing run-time DLLs, etc. Check Apache’s and PHP’s error log files first for clues.
More in-depth answer here: Call to undefined function mb_detect_encoding
you should use only english version of phpmyadmin if you are using all languages you should enable all languages mbstring in php.in file…..just search for mbstring in php.in
The problem could also be that Apache can’t find php.ini
If you set PHPIniDir incorrectly.
Mine was set to: PHPIniDir “c:/php7”
But, the folder is actually just “php”
The clue was viewing phpinfo()
Configuration File (php.ini) Path C:\windows
I had the same problem with Ubuntu 17,
Ispconfig was not processing the operations queued of any kind and also the
server.sh command was not working.
I checked and the running PHP version after the OS upgrade was 7.1 so the solution was to type:
apt-get install php7.1-mbstring
and now is everything ok
Hope this helps some ppl, I got this error when i added the path and extension to “docref_root” “docref_ext” in my php.ini file, I then commented it out and it was ok, but cant get my help to work now.
yum install php-mbstring
Then restart apache