我在这里和这里都看到了有关此错误的其他SO答案:在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
好的,所以我想通了。这与 /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
小智 6
运行php -v以检查PHP的版本。
如果您运行的版本是5.6,则解决方案如下:
sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml
Run Code Online (Sandbox Code Playgroud)
否则,运行以下命令:
sudo apt-get install php7.2-mbstring php7.2-mcrypt php7.2-mysql php7.2-xml
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9474 次 |
| 最近记录: |