尝试访问phpmyadmin mb_detect_encoding时出现PHP致命错误

mil*_*lan 18 php phpmyadmin fatal-error

不知道发生了什么,但下面是日志在尝试访问phpmyadmin时给我的,请帮忙.试图调试一个不同的问题,并遇到这个问题.真的不可能恢复到工作的时候.

PHP致命错误:在第177行的/usr/share/php/gettext/gettext.inc中调用未定义的函数mb_detect_encoding()

当我试图访问该网站时,我收到此错误,我认为这两个错误很可能是相关的:

数据库连接错误(1):MySQL适配器'mysqli'不可用.

Mic*_*eim 26

第一个错误是由php引起的,因为扩展名mbstring未安装或未激活.

第二个错误是phpMyAdmin /您的站点的输出,要求您安装/启用mysqli扩展.

要启用mbstring和mysqli编辑你的php.ini并添加/取消注释unbs上的mbstring.so和mysqli.so以及windows上的mbstring.dll和mysqli.dll这两行

Unix /etc/(phpX/)php.ini

extension=mysqli.so
extension=mbstring.so
Run Code Online (Sandbox Code Playgroud)

Windows PHP安装文件夹\ etc\php.ini

extension=mysqli.dll
extension=mbstring.dll
Run Code Online (Sandbox Code Playgroud)

此后不要忘记重新启动您的网络服务器.

编辑:用户添加他在评论中使用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
Run Code Online (Sandbox Code Playgroud)

您可以在文档根目录中使用一些PHP脚本验证您的安装.这列出了您为php安装的所有设置,版本和活动扩展

test.php的

<?php
phpinfo();
Run Code Online (Sandbox Code Playgroud)


php*_*oob 10

在阅读了关于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" 
Run Code Online (Sandbox Code Playgroud)

在我的配置中,这是dll的正确路径.

当然,没有评论:

extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll
Run Code Online (Sandbox Code Playgroud)

重新启动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

希望这有帮助.感谢你的评论.


Dim*_*zis 9

在ubuntu 16.04当我试图连接到phpmyadmin时出现了一个白色的空白页面,所以我运行了上面的命令和phpmyadmin的工作原理

sudo apt-get install php-mbstring php7.0-mbstring php-gettext
Run Code Online (Sandbox Code Playgroud)

用于mysql支持安装

sudo apt-get install php7.0-mysql
Run Code Online (Sandbox Code Playgroud)

在ubuntu 16.04中使用php 7版本进行了测试


Koe*_*en. 3

您的 PHP 安装似乎没有安装mbstring 扩展mysqli 适配器扩展

请检查您的phpinfo();php -i | grep 'mbstring\|mysqli'在终端中运行。