PHP Неустранимая ошибка при попытке доступа к phpmyadmin mb_detect_encoding
Не уверен, что произошло, но ниже - то, что журнал дает мне при попытке доступа к phpmyadmin, пожалуйста, помогите. Попытка отладить другую проблему и столкнулась с этим. Невозможно вернуться к тому, когда он работает.
PHP Неустранимая ошибка: вызов функции undefined mb_detect_encoding() в /usr/share/php/gettext/gettext.inc в строке 177
При попытке перейти на сайт, я получаю эту ошибку, я думаю, что, вероятно, связаны две ошибки:
Ошибка подключения к базе данных (1): Адаптер MySQL mysqli недоступен.
Ответы
Ответ 1
Первая ошибка вызвана php, поскольку расширение mbstring либо не установлено, либо неактивно.
Вторая ошибка выводится на phpMyAdmin/на вашем сайте с просьбой установить/включить расширение mysqli.
Чтобы включить mbstring и mysqli, отредактируйте свой php.ini и добавьте/раскомментируйте две строки с помощью mbstring.so и mysqli.so в unix или mbstring.dll и mysqli.dll на windows
Unix/etc/(phpX/) php.ini
extension=mysqli.so
extension=mbstring.so
Папка установки Windows PHP\etc\php.ini
extension=mysqli.dll
extension=mbstring.dll
Не забудьте перезапустить веб-сервер после этого.
EDIT:
Пользователь добавил, что он использовал redhat в комментариях, поэтому здесь вы устанавливаете расширения для всех Linux-дистрибутивов 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();
Ответ 2
После прочтения файла 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-инсталлятор-сообщества 5.6.11.0.msi
Надеюсь на эту помощь. спасибо для ваших комментариев тоже.
Ответ 3
в 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
Ответ 4
Похоже, что у вашей установки PHP нет расширение mbstring и расширение адаптера mysqli.
Пожалуйста, проверьте phpinfo();
или запустите php -i | grep 'mbstring\|mysqli'
в терминале.
Ответ 5
У меня была такая же проблема на моем windows7- 32 бит:
1. PHP Fatal error: вызов функции undefined 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\"
и он работал.
Ответ 6
В php.ini
мне пришлось изменить
extension_dir = "ext"
к
extension_dir = "C:/PHP/ext"
поскольку мой PHP был установлен в C:\PHP
. Мне пришлось использовать /
вместо \
, а затем это сработало.
Также раскомментируйте расширения mbstrings
, mysqli
и mysql
.
Ответ 7
Что помогло мне (используя 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)
Ответ 8
Перекомпилируйте PHP с помощью mbstring.
./configure --enable-http --with-apxs2 --with-mysql --with-gd
--with-curl --with-mbstring
make
make install
Ответ 9
Попробуйте install mysqli и pdo.
Поместите его в терминал:
./configure --with-mysql=/usr/bin/mysql_config \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd
Ответ 10
Мое предположение - проверить, что расширение mysqli включено в вашей конфигурации PHP. Больше информации было бы здорово (например, ОС, стек AMP и т.д.).
Проверьте конфигурацию php.ini для mysqli и убедитесь, что нет ';' перед расширением. В моей настройке включен параметр php_mysqli_libmysql.dll.
Ответ 11
Я попытался в Windows, и я получил такую же проблему после включения этого в PHP installation folder\etc\php.ini
:
extension=mysqli.dll
extension=mbstring.dl
Вы также должны включить в файл ini следующее:
extension_dir = "ext"
phpMyadmin работает сейчас!
Ответ 12
В Windows Server 2008 Server.
i удален ";" перед расширением = php_mbstring.dll в файле php.ini, и он работал... я следил за ссылкой...
https://bugs.php.net/bug.php?id=64965
Ответ 13
- Некоторые версии окон не содержат libmysql.dll, которые необходимы для загрузки расширений mysql и mysqli. Проверьте, доступна ли она в
C:/Windows/System32
(окна 7, 32 бита). Если нет, вы можете скачать DLL-files.com и установить его под C:/Windows/System32.
- Если это не удастся, проверьте свои файлы журнала apache и приложите к решению выше, которое отвечает на ошибку, зарегистрированную вашим сервером.
Ответ 14
Возможны следующие варианты:
отключен этот extension_dir = "ext"
а другой:
перейдите к значку wamp и просмотрите php и щелкните по журналам ошибок php, затем из журнала ошибок вы можете найти точную ошибку.
эта ошибка возникает только в том случае, если пути неправильно установлены.
Ответ 15
У меня были такие же проблемы, это то, что сработало для меня.
Вы можете щелкнуть по значку wampserver, затем в журнале ошибок PHP.
Проверьте, говорит ли он это:
Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_ldap.dll'
Если да, то вы можете перезагрузить свою версию PHP, щелкнув значок wampserver, затем PHP, затем версию, а затем нажмите на свою версию.
Подождите, пока все будет снова подключено к сети, а затем попытайтесь получить доступ к phpmyadmin.