PHP Неустранимая ошибка при попытке доступа к phpmyadmin mb_detect_encoding

Не знаю, что произошло, но ниже, что журнал дает мне при попытке доступа к phpmyadmin, пожалуйста, помогите. Попытка отладить другую проблему и столкнулась с этим. Невозможно вернуться к тому, когда он работает.

PHP Неустранимая ошибка: вызов неопределенной функции mb_detect_encoding () в /usr/share/php/gettext/gettext.inc в строке 177

При попытке перейти на сайт, я получаю эту ошибку, я думаю, что, вероятно, связаны две ошибки:

Ошибка подключения к базе данных (1): Адаптер MySQL mysqli недоступен.

Первая ошибка вызвана php, поскольку расширение mbstring либо не установлено, либо неактивно.

Вторая ошибка – вывод phpMyAdmin / вашего сайта с просьбой установить / включить расширение mysqli.

Чтобы включить mbstring и mysqli, отредактируйте php.ini и добавьте / раскомментируйте две строки с помощью mbstring.so и mysqli.so в unix или mbstring.dll и mysqli.dll в окнах

Unix /etc/(phpX/)php.ini

extension=mysqli.so extension=mbstring.so 

Папка установки Windows PHP \ etc \ php.ini

 extension=mysqli.dll extension=mbstring.dll 

Не забудьте перезагрузить веб-сервер после этого.

EDIT: Пользователь добавил, что он использовал redhat в комментариях, поэтому вот как вы устанавливаете расширения на всех дистрибутивах на базе CentOS / Fedora / RedHat / Yum

 sudo yum install php-mysqli sudo yum install php-mbstring restart your werbserver sudo /etc/init.d/httpd restart 

вы можете проверить свою установку с помощью небольшого скрипта php в корневом каталоге документа. В этом списке перечислены все настройки, версии и активные расширения, которые вы установили для php

test.php

 <?php phpinfo(); 

После прочтения о extension_dir = «ext» я добавил строку в php.ini, но не работал, а затем начал искать журнал ошибок apache и увидел, что PHP фактически не смог найти dll в указанном каталоге «ext». Я прокомментировал строку extension_dir, перезапустил Apache и снова просмотрел журнал ошибок, увидел, что PHP теперь ищет DLL в C: / PHP / ext (по умолчанию я предполагаю), но поскольку im использует другие папки, это не правильный путь, поэтому я раскомментировал строку extension_dir и написал следующее:

 extension_dir = "C:/Apache24/PHP/ext" 

В моей конфигурации это правильный путь к dll.

и, конечно же, без комментариев:

 extension=php_mbstring.dll extension=php_mysql.dll extension=php_mysqli.dll 

Перезагрузили сервер Apache и интернет-браузер, и теперь phpMyAdmin работает с моим именем mySQL.

Таким образом, проблема dll неправильного пути и dll, прокомментированных в php.ini.

Не забудьте перезапустить Apache и интернет-браузер после редактирования файлов конфигурации.

Системная спецификация: Windows 7 HB 64bit httpd-2.4.4-win32-ssl_0.9.8.zip php-5.4.16-Win32-VC9-x86.zip phpMyAdmin-4.0.4.1-all-languages.zip mysql-installer-community- 5.6.11.0.msi

Надеюсь, эта помощь. Thx для ваших комментариев тоже.

в ubuntu 16.04, когда я попытался подключиться к phpmyadmin, появился белый пустой почтовый ящик, поэтому я выполнил указанную выше команду и работает phpmyadmin

 sudo apt-get install php-mbstring php7.0-mbstring php-gettext 

для поддержки mysql

 sudo apt-get install php7.0-mysql 

протестирован в ubuntu 16.04 с версией php 7

Похоже, что у вашей установки PHP нет расширения mbstring и расширения адаптера mysqli .

Проверьте phpinfo(); или запустите php -i | grep 'mbstring\|mysqli' php -i | grep 'mbstring\|mysqli' в терминале.

У меня была такая же проблема на моем windows7 – 32 бит:

1. «PHP Неустранимая ошибка: вызов неопределенной функции mb_detect_encoding () в /usr/share/php/gettext/gettext.inc в строке 177"

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

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

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

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

и это сработало.

В php.ini мне пришлось изменить

 extension_dir = "ext" 

в

 extension_dir = "C:/PHP/ext" 

так как мой PHP был установлен в C:\PHP . Мне пришлось использовать / вместо \ , а затем это сработало.

Также раскомментируйте mbstrings , mysqli и расширения mysql .

Что помогло мне (используя XAMPP в Windows):

  • убедитесь, что мой путь включал правильный путь для PHP (у меня было две установки PHP, одна под c:\php и установка XAMPP в c:\xampp\php которая была той, которую я хотел использовать)
  • убедитесь, что линии
    extension_dir="C:\xampp\php\ext"
    extension=php_mbstring.dll
    extension=php_exif.dll ; Must be after mbstring as it depends on it
    были раскомментированы в файле php.ini (т.е. нет ; в начале)
  • перезапустить сервер Apache
  • не в последнюю очередь, очистить кеш при перезагрузке страницы http://localhost/phpmyadmin/ (например, с помощью Ctrl-F5 в Chrome)

Перекомпилируйте PHP с помощью mbstring.

./configure --enable-http --with-apxs2 --with-mysql --with-gd --with-curl --with-mbstring

 make make install 

Мое предположение было бы проверить, что расширение mysqli включено в вашей конфигурации PHP. Больше информации было бы здорово (например, ОС, стек AMP и т. Д.).

Проверьте конфигурацию php.ini для mysqli и убедитесь, что нет ';' перед расширением. В моей настройке включен php_mysqli_libmysql.dll.

Попробуйте установить mysqli и pdo. Поместите его в терминал:

 ./configure --with-mysql=/usr/bin/mysql_config \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd 

Я попытался в Windows, и у меня возникла такая же проблема после включения этого в PHP installation folder\etc\php.ini :

 extension=mysqli.dll extension=mbstring.dl 

Вы также должны включить следующее в ini-файле:

 extension_dir = "ext" 

phpMyadmin работает сейчас!

В Windows 2008 Server.

Я удалил ";" перед расширением = php_mbstring.dll в файле php.ini, и он работал … я следил за ссылкой …

https://bugs.php.net/bug.php?id=64965

  1. Некоторые версии окон не поставляются с libmysql.dll, которые необходимы для загрузки расширений mysql и mysqli. Проверьте, доступен ли он в C:/Windows/System32 (окна 7, 32 бита). Если нет, вы можете загрузить его DLL-files.com и установить его под C: / Windows / System32.
  2. Если это не удастся, проверьте свои файлы журнала apache и приложите к решению выше, которое отвечает на ошибку, зарегистрированную вашим сервером.

Один из вариантов: отключить этот extension_dir = "ext"

а другой:

перейдите к значку wamp и просмотрите php и щелкните по журналам ошибок php, затем из журнала ошибок u можете найти точную ошибку.

эта ошибка возникает только в том случае, если пути неправильно установлены.

У меня были такие же проблемы, это то, что сработало для меня.

Вы можете щелкнуть по значку wampserver, затем в журнале ошибок PHP. Проверьте, не говорится ли это: Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_ldap.dll'

Если да, то вы можете перезагрузить свою версию PHP, щелкнув значок wampserver, затем PHP, затем версию, а затем нажмите на свою версию. Подождите, пока все будет снова подключено к сети, а затем попытайтесь получить доступ к phpmyadmin.