调用未定义的函数utf8_decode

时间:2017-10-02 18:52:35

标签: php php-7

我查看了有关此错误的其他SO答案herehere在stderr中发送的FastCGI:“PHP消息:PHP致命错误:未捕获错误:调用未定义函数utf8_decode

两个答案都说安装php-xml会修复错误。但那没用。我运行了sudo apt install php-xml,它安装了php-xml和php7.0-xml,我重新启动了php-fpm和nginx。但我仍然得到同样的错误。

同时选中function_exists('utf8_decode')并返回false。因此,当调用utf8_decode时,显然会抛出错误。

服务器是Ubuntu 16.04和PHP 7.0。这是phpinfo输出(PDF):https://drive.google.com/file/d/0B3GpdAvwm4fOaWMwb0JkTFQyb0U/view?usp=sharing

3 个答案:

答案 0 :(得分:4)

好的,所以我明白了。这与/etc/php/7.0/mods-available /

中缺少的文件有关

通常应该有一个xml.ini文件,但由于我安装,卸载和重新安装PHP的方式,该文件丢失了。那项行动并没有干净利落。从PPA安装PHP后我卸载了它,删除了/ etc / php /中的许多文件(不建议这样做。请改用apt-get purge)。

很长一段时间,这很有效:

sudo apt-get purge php-xml php7.0-xml

sudo apt-get install php-xml

答案 1 :(得分:1)

运行php -v以检查 PHP 的版本。

如果你正在运行的版本是 5.6 ,解决方法如下:

sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml

否则,请运行以下命令:

sudo apt-get install php7.2-mbstring php7.2-mcrypt php7.2-mysql php7.2-xml

答案 2 :(得分:0)

寻找我已安装在php中的模块

php -m | grep -i xml

运行此命令后

yum --enablerepo remi install php-xml

并重新启动apache

sudo service httpd restart