Ответ 1
Также установите библиотеку gd.
проверить эту ссылку http://www.php.net/manual/en/mbstring.installation.php
Я получаю эту ошибку после попытки настроить LAMP, следуя этому руководству, и я обнаружил, что получаю вышеуказанную ошибку после попытки установить phpmyadmin.
Неустранимая ошибка: вызов неопределенной функции mb_detect_encoding() в C:\WebServer\Apache\htdocs\phpmyadmin\libraries\php-gettext\gettext.inc в строке 177
Я следил за советом здесь: PHP Неустранимая ошибка при попытке доступа к phpmyadmin mb_detect_encoding и внесены эти изменения.
Когда я запускаю phpinfo()
, я вижу, что поддержка MySQL и mb_string
включена, как показано ниже:
Также установите библиотеку gd.
проверить эту ссылку http://www.php.net/manual/en/mbstring.installation.php
Там гораздо проще, чем перекомпиляция PHP. Просто yum установите требуемую библиотеку mbstring:
Пример: Как установить PHP mbstring на CentOS 6.2
yum --enablerepo=remi install php-mbstring
О, и не забудьте снова перезапустить apache.
Mbstring - это нестандартное расширение. Это означает, что он не включен по умолчанию. Вы должны явно включить модуль с опцией configure.
Если ваша версия php 7.0:
sudo apt-get install php7.0-mbstring
sudo service apache2 restart
Если ваша версия php равна 5.6:
sudo apt-get install php5.6-mbstring
sudo service apache2 restart
В Windows откройте файл php.ini и внесите следующие изменения:
Удалить комментарий и указать каталог ext
; extension_dir = "./" → extension_dir = "C:/Php/ext"
Удалить комментарий к этим расширениям
Перезапустить службу apache
httpd -k restart
В Windows/WAMP, похоже, нет никаких зависимостей php_mbstring.dll от расширения GD2, расширений MySQL и внешних dlls/libs:
deplister.exe ext\php_mbstring.dll
php5ts.dll,OK
MSVCR110.dll,OK
KERNEL32.dll,OK
deplister.exe ext\php_gd2.dll
php5ts.dll,OK
USER32.dll,OK
GDI32.dll,OK
KERNEL32.dll,OK
MSVCR110.dll,OK
Что бы ни требовалось php_mbstring, он встроен (статически скомпилирован прямо в DLL).
Вызов функции undefined mb_detect_encoding()
Эта ошибка также очень специфична и детерминирована...
Функция mb_detect_encoding()
не сработала, потому что php_gd, php_mysql, php_mysqli или другое расширение не были загружены; он просто НЕ был найден.
Я предполагаю, что все ответы, которые сообщаются как достоверные (для Windows/WAMP), которые скажут, что загружают другие расширения, изменяют пути php.ini extension_dir
(если это было неправильно для начала, NO расширения будут загружаться) и т.д., больше работают из-за:) не комментирования строки extension = php_mbstring.dll
или б) перезапуска Apache или компьютера (для того, чтобы изменения вступили в силу).
В Windows большую часть времени проблема заключается в том, что php_mbstring.dll либо:
Заблокировано Windows. Разблокируйте его, щелкнув правой кнопкой мыши его, установите флажок "Свойства".
Или PHP не может загрузить php_mbstring.dll из-за загрузки другой версии (например, из некоторых нестандартных DLL-библиотек PHP в C:\Windows\system32), некоторая несогласованность версий, отсутствие промежуточных библиотек DLL и т.д. Проверьте файлы журнала ошибок Apache и PHP в первую очередь для подсказок.
Более подробный ответ здесь: Вызов функции undefined mb_detect_encoding
Когда я открыл файл php.ini, строка "extension_dir" выглядела следующим образом:
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
который я изменил на:
extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"
и он работал.
вам нужно использовать только английскую версию phpmyadmin, если вы используете все языки, на которых вы должны включить все языки mbstring в файле php.in..... просто найдите mbstring в php.in
Проблема также в том, что Apache не может найти php.ini Если вы неправильно установили PHPIniDir. Mine был настроен на: PHPIniDir "c:/php7" Но папка на самом деле просто "php", Ключ просматривал phpinfo() Что показало: Файл конфигурации (php.ini) Путь C:\windows
Надеюсь, что это поможет некоторым ppl, я получил эту ошибку, когда добавил путь и расширение к docref_root docref_ext в моем файле php.ini, затем я прокомментировал это, и все было в порядке, но не могу помочь работайте сейчас.
Для fedora:
yum install php-mbstring
Затем перезапустите apache
У меня была та же проблема с Ubuntu 17, Ispconfig
не обрабатывал операции в очереди любого типа, а также команда server.sh
не работала. Я проверил, и запущенная версия PHP после обновления ОС была 7.1, поэтому решение должно было ввести:
apt-get install php7.1-mbstring
и теперь все в порядке