2017-07-16 188 views
4

当我运行此命令php -v
这个错误出现:PHP的警告:PHP启动:无法加载动态库

PHP的警告:PHP启动:无法加载动态库“/ usr/lib目录/ php/20160303/dom.so' - /usr/lib/php/20160303/dom.so:undefined symbol:php_libxml_node_free_list在未知的行0

PHP警告:PHP启动:无法加载动态库'/ usr/lib/php/20160303/xmlreader.so' - /usr/lib/php/20160303/xmlreader.so:undefined symbol:dom_node_class_entry in Unknown on line 0

PHP警告:PHP启动:无法加载动态库'/usr/lib/php/20160303/xsl.so' - /usr/lib/php/20160303/xsl.so:undefined symbol:dom_node_class_entry in Unknown on line 0
PHP 7.1.5-1 + deb.sury.org〜trusty + 2(cli)(built:May 22 2017 13:39:01)(NTS)

Copyright(c)1997-2017 The PHP Zend Technologies公司版权所有(c)1999-2017,Zend Technologies公司,Zend Technologies公司, Zend技术公司,Zend Technologies公司

+0

任何人都可以帮我吗? –

+0

我认为这个错误信息解释了它自己,它无法找到它正在告诉你的位置所期望的动态库。首先要做的就是检查它们是否存在 –

+0

但是我不知道如何找到xmlreader.so,@PeterFeatherstone –

回答

0

我遇到过同样的错误。据报道丢失的文件存在,文件权限对我来说看起来不错,并且PHP使用正确的用户和组执行。

对我来说,它有助于删除所有的PHP软件包并重新开始。

  1. 以下命令应删除所有PHP包的Debian/Ubuntu的系统包括PHP配置 - 让前一个备份):

    sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "` 
    

    来源:https://askubuntu.com/a/187278

  2. 检查PHP是否被删除:

    php -v 
    

    这应该返回类似“未找到命令:php”。

  3. 然后,重新安装PHP,例如:

    sudo apt-get install php7.1 php7.1-xml php7.1-fpm php7.1-json 
    
+0

你的解决方案将删除软件包配置。检查我的答案是否修复而不删除配置。 – Fiil

+0

感谢您的评论。取决于配置,从一个新的开始,可能是一个好主意(或不)。我加了一个警告! :) – Icarus

47

安全的解决方案是重新安装所有PHP7相关的软件包。

你可以通过简单地输入这个命令控制台做到这一点:

sudo apt-get install --reinstall `dpkg -l | grep 'ii php7' | awk '{ printf($2" "); next}'` 

该解决方案将让您的配置不变

+0

你可以告诉我为Mac的解决方案吗?谢谢 –

+0

谢天谢地,它为我的Ubuntu 14.04工作,但我有我的Mac相同的问题...... –

+0

谢谢。它在2015目录中的ubuntu 14.04上工作。 –

-1

在我的情况下,一些PHP包没有升级,所以我根本就执行的dist-升级:

sudo apt-get dist-upgrade 
0

我发现几乎与linux更新后的xml相同的问题(以及PHP 7.0 - > 7.1)。

对我来说,解决方案是非常简单的:

sudo apt install php7.1-xml 
相关问题