不知道发生了什么,但以下是尝试访问 phpmyadmin 时日志给我的内容,请帮忙。试图调试一个不同的问题并遇到了这个问题。真的不可能恢复到它工作的时候。
PHP 致命错误:在第 177 行的 /usr/share/php/gettext/gettext.inc 中调用未定义函数 mb_detect_encoding()
尝试访问该站点时,出现此错误,我认为这两个错误很可能是相关的:
数据库连接错误 (1): MySQL 适配器 'mysqli' 不可用。
不知道发生了什么,但以下是尝试访问 phpmyadmin 时日志给我的内容,请帮忙。试图调试一个不同的问题并遇到了这个问题。真的不可能恢复到它工作的时候。
PHP 致命错误:在第 177 行的 /usr/share/php/gettext/gettext.inc 中调用未定义函数 mb_detect_encoding()
尝试访问该站点时,出现此错误,我认为这两个错误很可能是相关的:
数据库连接错误 (1): MySQL 适配器 'mysqli' 不可用。
第一个错误是由 php 引起的,因为扩展 mbstring 未安装或未激活。
第二个错误是 phpMyAdmin/your site 的输出,要求您安装/启用 mysqli 扩展。
要启用 mbstring 和 mysqli,请编辑您的 php.ini 并在 unix 上使用 mbstring.so 和 mysqli.so 或在 windows 上使用 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
在此之后不要忘记重新启动您的网络服务器。
编辑:用户在评论中补充说他正在使用 redhat 所以这里是你如何在所有基于 CentOS/Fedora/RedHat/Yum 的 linux 发行版上安装扩展
sudo yum install php-mysqli
sudo yum install php-mbstring
restart your werbserver
sudo /etc/init.d/httpd restart
您可以使用文档根目录中的一个小 php 脚本来验证您的安装。这列出了您为 php 安装的所有设置、版本和活动扩展
测试.php
<?php
phpinfo();
在阅读了关于 extension_dir = "ext" 的信息后,我将这一行添加到 php.ini 但没有用,然后开始查看 apache 错误日志,发现 PHP 实际上无法在指定目录 "ext" 中找到 dll。我评论了 extension_dir 行,重新启动 Apache 并再次查看错误日志,看到 PHP 现在正在 C:/PHP/ext 中查找 dll(我猜默认情况下),但由于我使用其他文件夹,这不是正确的路径,所以我取消了 extension_dir 行的注释并写了这个:
extension_dir = "C:/Apache24/PHP/ext"
在我的配置中,这是 dll 的正确路径。
当然,未注释:
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
重新启动 Apache 服务器和 Internet 浏览器,现在 phpMyAdmin 可以使用我的 mySQL 登录。
因此,dll 的错误路径和需要在 php.ini 中注释的 dll 是问题所在。
请记住在编辑配置文件后重新启动 Apache 和 Internet 浏览器。
系统规格: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
希望这有帮助。谢谢你的评论。
在 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'
在终端中运行。
我在 windows7-32 位上遇到了同样的问题:
1.“PHP 致命错误:在第 177 行的 /usr/share/php/gettext/gettext.inc 中调用未定义函数 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\"
它奏效了。
在php.ini
,我不得不改变
extension_dir = "ext"
至
extension_dir = "C:/PHP/ext"
因为我的 PHP 安装在C:\PHP
. 我不得不使用,/
而不是\
,然后它工作。
也取消注释和mbstrings
扩展。mysqli
mysql
帮助我(在 Windows 上使用 XAMPP)是:
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
;
开头没有)http://localhost/phpmyadmin/
(例如在 Chrome 中使用 Ctrl-F5)用 mbstring 重新编译 PHP。
./configure --enable-http --with-apxs2 --with-mysql --with-gd
--with-curl --with-mbstring
make
make install
尝试安装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 正在工作!
一种选择是:禁用此 extension_dir = "ext"
另一个是:
转到 wamp 图标并查看 php,然后单击 php 错误日志,然后从错误日志中您可以找到确切的错误。
仅当未正确设置路径时才会出现此错误。
我遇到了同样的麻烦,这对我有用。
您可以单击 wampserver 图标,然后单击 PHP 错误日志。检查它是否这样说:
Unable to load dynamic library 'c:/wamp/bin/php/php5.5.12/ext/php_ldap.dll'
如果是,那么您可以重新加载您的 PHP 版本,方法是单击 wampserver 图标,然后单击 PHP,然后单击版本,然后单击您的版本。等待一切再次上线,然后尝试访问 phpmyadmin。
C:/Windows/System32
(Windows 7、32 位)中可用。如果没有,您可以下载DLL-files.com并将其安装在 C:/Windows/System32 下。在 Windows 2008 服务器中。
我删除了 ”;” 在 php.ini 文件中的 extension=php_mbstring.dll 前面,它起作用了...我按照下面的链接...
我的猜测是检查您的 PHP 配置中是否启用了 mysqli 扩展。更多信息会很棒(例如操作系统、AMP 堆栈等)。
检查 mysqli 的 php.ini 配置并确保没有 ';' 在扩展的前面。在我的设置中启用的是 php_mysqli_libmysql.dll。