我在尝试按照this tutorial设置LAMP后收到此错误,并且在尝试设置phpmyadmin后发现自己收到了上述错误。
致命错误:调用未定义的函数mb_detect_encoding() C:\ Web服务器\阿帕奇\ htdocs中\的phpmyadmin \库\ PHP-gettext的\ gettext.inc 在第177行
我遵循了这里的建议:PHP Fatal error when trying to access phpmyadmin mb_detect_encoding,并进行了这些更改。
当我运行phpinfo()
时,我发现对MySQL和mb_string
的支持已启用,如下所示:
答案 0 :(得分:40)
也安装gd库。
检查此链接 http://www.php.net/manual/en/mbstring.installation.php
答案 1 :(得分:28)
比重新编译PHP更容易。只需安装所需的mbstring库:
示例:How to install PHP mbstring on CentOS 6.2
yum --enablerepo=remi install php-mbstring
哦,不要忘记之后重启apache。
答案 2 :(得分:8)
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
答案 3 :(得分:6)
在Windows上打开文件php.ini并进行更改:
删除评论并指向ext目录
extension_dir =" ./" - > extension_dir =" C:/ Php / ext"
删除此扩展程序的评论
重启apache服务
httpd -k restart
答案 4 :(得分:3)
当我打开我的php.ini文件时,“extension_dir”行看起来如下:
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
我改为:
extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"
并且有效。
答案 5 :(得分:2)
在Windows / WAMP下,似乎没有任何关于GD2扩展,MySQL扩展,外部dll / libs的php_mbstring.dll依赖:
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中)。
调用未定义的函数mb_detect_encoding()
这个错误也非常具体和确定性......
函数mb_detect_encoding()
没有失败,因为没有加载php_gd,php_mysql,php_mysqli或其他扩展名;它根本找不到。
我猜测所有报告为有效的答案(适用于Windows / WAMP),即加载其他扩展程序,以更改php.ini extension_dir
路径(如果这个路径错误的话)开头,没有扩展会加载)等,由于a)取消注释extension = php_mbstring.dll
行,或b)重新启动Apache或计算机(更改生效),工作更多。
在Windows上,大多数情况下问题是php_mbstring.dll是:
被Windows阻止。通过右键单击取消阻止它,选中属性。
或者由于另一个版本被加载(例如,从一些不正确的PHP DLL安装到C:\ Windows \ system32),PHP无法加载php_mbstring.dll,某些版本不匹配,缺少运行时DLL等。首先检查Apache和PHP的错误日志文件以获取线索。
答案 6 :(得分:1)
你应该只使用英文版的phpmyadmin如果你使用所有语言你应该在php.in文件中启用所有语言mbstring .....只需在php.in中搜索mbstring
答案 7 :(得分:1)
问题也可能是Apache无法找到php.ini 如果您错误地设置PHPIniDir。 我的设置为:PHPIniDir" c:/ php7" 但是,该文件夹实际上只是" php" 线索是查看phpinfo() 其中显示: 配置文件(php.ini)路径C:\ windows
答案 8 :(得分:1)
我遇到了与Ubuntu 17相同的问题,src/Repository
没有处理任何类型的排队操作,Ispconfig
命令也无效。
我检查并在操作系统升级后运行的PHP版本为7.1,因此解决方案是键入:
server.sh
现在一切都好了
答案 9 :(得分:0)
希望这有助于某些人,当我将路径和扩展名添加到" docref_root"时,我收到此错误" docref_ext"在我的php.ini文件中,我随后将其评论出来并且没关系,但现在无法帮我工作。
答案 10 :(得分:0)
对于fedora:
yum install php-mbstring
然后重启apache