Подтвердить что ты не робот

Неустранимая ошибка: вызов функции undefined mb_detect_encoding()

Я получаю эту ошибку после попытки настроить 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 включена, как показано ниже:

mb_string

MySQL

mysqli

4b9b3361

Ответ 2

Там гораздо проще, чем перекомпиляция PHP. Просто yum установите требуемую библиотеку mbstring:

Пример: Как установить PHP mbstring на CentOS 6.2

yum --enablerepo=remi install php-mbstring

О, и не забудьте снова перезапустить apache.

Ответ 3

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

Ответ 4

В Windows откройте файл php.ini и внесите следующие изменения:

Удалить комментарий и указать каталог ext

; extension_dir = "./" → extension_dir = "C:/Php/ext"

Удалить комментарий к этим расширениям

  • extension = php_mbstring.dll
  • расширение = php_mysqli.dll

Перезапустить службу apache

httpd -k restart

Ответ 5

В 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

Ответ 6

Когда я открыл файл php.ini, строка "extension_dir" выглядела следующим образом:

extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"

который я изменил на:

extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"

и он работал.

Ответ 7

вам нужно использовать только английскую версию phpmyadmin, если вы используете все языки, на которых вы должны включить все языки mbstring в файле php.in..... просто найдите mbstring в php.in

Ответ 8

Проблема также в том, что Apache не может найти php.ini Если вы неправильно установили PHPIniDir. Mine был настроен на: PHPIniDir "c:/php7" Но папка на самом деле просто "php", Ключ просматривал phpinfo() Что показало: Файл конфигурации (php.ini) Путь C:\windows

Ответ 9

Надеюсь, что это поможет некоторым ppl, я получил эту ошибку, когда добавил путь и расширение к docref_root docref_ext в моем файле php.ini, затем я прокомментировал это, и все было в порядке, но не могу помочь работайте сейчас.

Ответ 10

Для fedora:

yum install php-mbstring

Затем перезапустите apache

Ответ 11

У меня была та же проблема с Ubuntu 17, Ispconfig не обрабатывал операции в очереди любого типа, а также команда server.sh не работала. Я проверил, и запущенная версия PHP после обновления ОС была 7.1, поэтому решение должно было ввести:

apt-get install php7.1-mbstring

и теперь все в порядке