我尝试通过以下this tutorial尝试设置LAMP后收到此错误,并且在尝试设置phpmyadmin后发现自己收到了上述错误 .
致命错误:在第177行的C:\ WebServer \ Apache \ htdocs \ phpmyadmin \ libraries \ php-gettext \ gettext.inc中调用未定义的函数mb_detect_encoding()
我按照这里的建议:PHP Fatal error when trying to access phpmyadmin mb_detect_encoding,并进行了这些修改 .
当我运行 phpinfo()
时,我看到对MySQL和 mb_string
的支持已启用,如下所示:
11 回答
也安装gd库 .
检查此链接http://www.php.net/manual/en/mbstring.installation.php
有一种比重新编译PHP更容易的方法 . 只是yum安装所需的mbstring库:
示例:How to install PHP mbstring on CentOS 6.2
哦,不要忘记之后重启apache .
Mbstring是一个非默认扩展名 . 这意味着默认情况下不启用它 . 您必须使用configure选项显式启用该模块 .
如果您的PHP版本是7.0:
如果您的PHP版本是5.6:
在Windows上打开文件php.ini并进行以下更改:
删除注释并指向ext目录
; extension_dir =“./” - > extension_dir =“C:/ Php / ext”
删除此扩展的评论
extension = php_mbstring.dll
extension = php_mysqli.dll
重启apache服务
httpd -k restart
在Windows / WAMP下,似乎没有任何php_mbstring.dll依赖于GD2扩展,MySQL扩展,也没有外部dll / libs:
deplister.exe ext\php_mbstring.dll
deplister.exe ext\php_gd2.dll
无论php_mbstring需要什么,它都是内置的(静态编译到DLL中) .
这个错误也非常具体和确定性......
函数
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无法加载php_mbstring.dll,因为另一个版本被加载(例如,从一些不正确的PHP DLL安装到C:\ Windows \ system32),一些版本不匹配,缺少运行时DLL等 . 检查Apache和PHP的错误日志文件首先是线索 .
这里有更深入的答案:Call to undefined function mb_detect_encoding
当我打开我的php.ini文件时,“extension_dir”行如下所示:
我改为:
它工作 .
你应该只使用英文版的phpmyadmin如果你使用所有语言你应该在php.in文件中启用所有语言mbstring .....只需在php.in中搜索mbstring
问题也可能是Apache无法找到php.ini如果你错误地设置了PHPIniDir . 我设置为:PHPIniDir“c:/ php7”但是,该文件夹实际上只是“php”线索正在查看phpinfo()其中显示:配置文件(php.ini)路径C:\ windows
希望这有助于一些ppl,当我在我的php.ini文件中添加路径和扩展名为“docref_root”“docref_ext”时出现此错误,然后我将其评论出来并且没关系,但现在无法帮我工作 .
对于fedora:
yum install php-mbstring
然后重启apache
我遇到了与Ubuntu 17相同的问题,
Ispconfig
没有处理任何类型的排队操作,并且server.sh
命令也无法正常工作 . 我检查并在操作系统升级后运行的PHP版本是7.1所以解决方案是键入:现在一切都好