Php 致命错误:调用未定义的函数mb_detect_encoding()
我在尝试通过以下方式设置LAMP后收到此错误,并且在尝试设置phpmyadmin后发现自己收到上述错误 致命错误:在中调用未定义的函数mb_detect_encoding() C:\WebServer\Apache\htdocs\phpmyadmin\libraries\php gettext\gettext.inc 在线177 我按照这里的建议做了这些改变 当我运行Php 致命错误:调用未定义的函数mb_detect_encoding(),php,mbstring,Php,Mbstring,我在尝试通过以下方式设置LAMP后收到此错误,并且在尝试设置phpmyadmin后发现自己收到上述错误 致命错误:在中调用未定义的函数mb_detect_encoding() C:\WebServer\Apache\htdocs\phpmyadmin\libraries\php gettext\gettext.inc 在线177 我按照这里的建议做了这些改变 当我运行phpinfo()时,我看到对MySQL和mb_string的支持已启用,如下所示: 同时安装gd库 检查此链接 如果您使用的
phpinfo()
时,我看到对MySQL和mb_string
的支持已启用,如下所示:
同时安装gd库 检查此链接
如果您使用的是所有语言,您应该只使用英文版的phpmyadmin。您应该在php.in文件中启用所有语言mbstring…..只需在php中搜索mbstring。在中,有一种比重新编译php更简单的方法。只需yum安装所需的mbstring库: 例如:
哦,别忘了在以后重新启动apache。在Windows上打开文件php.ini并进行以下更改: 删除注释并指向ext目录 );extension_dir=“./”->extension_dir=“C:/Php/ext” 删除此扩展的注释
- extension=php_mbstring.dll
- extension=php_mysqli.dll
httpd-k restart在Windows/WAMP下,GD2扩展、MySQL扩展和外部dll/libs上似乎没有任何php_mbstring.dll依赖项:
deplister.exe ext\php\u mbstring.dll
php5ts.dll,OK
MSVCR110.dll,OK
KERNEL32.dll,OK
php5ts.dll,OK
USER32.dll,OK
GDI32.dll,OK
KERNEL32.dll,OK
MSVCR110.dll,OK
deplister.exe ext\php_gd2.dll
php5ts.dll,OK
MSVCR110.dll,OK
KERNEL32.dll,OK
php5ts.dll,OK
USER32.dll,OK
GDI32.dll,OK
KERNEL32.dll,OK
MSVCR110.dll,OK
无论php_mbstring已经需要什么,它都是内置的(静态编译到DLL中)
调用未定义函数mb_detect_encoding()
这个错误也是非常具体和确定的
函数mb\u detect\u encoding()
没有失败,因为没有加载php\u gd、php\u mysql、php\u mysqli或其他扩展;根本没有找到
我猜所有被报告为有效的答案(对于Windows/WAMP),比如加载其他扩展,更改php.iniextension\u dir
路径(如果这个一开始是错误的,就不会加载任何扩展),等等,由于a)取消注释extension=php\u mbstring.dll
行,或者b)重新启动Apache或计算机(以使更改生效)
在Windows上,大多数情况下,问题在于php_mbstring.dll是:
- 被窗口阻止。通过右键单击取消阻止,检查属性
- 或者PHP无法加载PHP_mbstring.dll,因为加载了另一个版本(例如,从一些不正确的PHP dll安装到C:\Windows\system32中)、一些版本不匹配、缺少运行时dll等。请首先查看Apache和PHP的错误日志文件以获取线索
这里有更深入的回答:希望这对ppl有所帮助,当我在php.ini文件中添加“docref_root”“docref_ext”的路径和扩展名时,我遇到了这个错误,然后我对它进行了注释,它还可以,但现在无法得到我的帮助。当我打开我的php.ini文件时,“extension_dir”行如下所示:
extension_dir = "C:/wamp/bin/php/php5.4.16/ext/"
我改为:
extension_dir = "C:\wamp\bin\php\php5.4.16\ext\"
它起了作用。对于fedora/centos/redhat:
yum安装php mbstring
然后重新启动apache问题还可能是apache找不到php.ini 如果PHPIniDir设置不正确。 我的设置为:PHPIniDir“c:/php7” 但是,文件夹实际上只是“php” 线索是查看phpinfo() 这表明:
配置文件(php.ini)路径C:\windowsMbstring是非默认扩展名。这意味着默认情况下不启用它。必须使用配置选项显式启用模块 如果您的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
我在Ubuntu 17上也遇到了同样的问题,
Ispconfig
没有处理任何类型的排队操作,而且server.sh
命令也不起作用。
我检查过,操作系统升级后运行的PHP版本是7.1,因此解决方案是键入:
apt-get install php7.1-mbstring
现在一切都好了吗你的php版本是什么?你需要什么样的
gd
库?在获得phpMyAdmin的白色主页后,它也在openSuse 13.1中工作:`yast-i php mbstring`如果你的系统上安装了多个版本,你可能需要安装特定版本的库,例如,使用sudo apt install php5.6-mbstring
。同时删除注释(;)通过这些扩展和extension=php_mysql.dll
和extension=php_gettext.dll
或者,您可以从Windows中的服务启动APACHE
sudo-yum-install-php72-mbstring