当我运行此命令php -v
时
出现此错误:
PHP警告:PHP启动:无法加载动态库' /usr/lib/php/20160303/dom.so' - /usr/lib/php/20160303/dom.so:未定义的符号:第0行的未知符号中的php_libxml_node_free_list
PHP警告:PHP启动:无法加载动态库' /usr/lib/php/20160303/xmlreader.so' - /usr/lib/php/20160303/xmlreader.so:未定义的符号:第0行的未知中的dom_node_class_entry
PHP警告:PHP启动:无法加载动态库' /usr/lib/php/20160303/xsl.so' - /usr/lib/php/20160303/xsl.so:未定义的符号:第0行的未知中的dom_node_class_entry
PHP 7.1.5-1 + deb.sury.org~trusty + 2(cli)(建于2017年5月22日13:39:01)(NTS)版权所有(c)1997-2017 PHP小组 Zend Engine v3.1.0,版权所有(c)1998-2017 Zend Technologies 与Zend OPcache v7.1.7-1 + ubuntu14.04.1 + deb.sury.org + 1,版权所有(c)1999-2017,作者:Zend Technologies
答案 0 :(得分:61)
安全解决方案是重新安装所有与php7相关的软件包。
您只需输入此命令即可执行此操作:
sudo apt-get install --reinstall `dpkg -l | grep 'ii php7' | awk '{ printf($2" "); next}'`
此解决方案将保持您的配置不变
答案 1 :(得分:8)
(在ubuntu 14.04或以上)
sudo apt-get install libapache2-mod-php7.0 libphp7.0-embed libssl-dev openssl php7.0-cgi php7.0-cli php7.0-common php7.0-dev php7.0-fpm php7.0-phpdbg
参考:
https://gnh1201.wordpress.com/2017/07/24/php-7-0-undefined-symbol-php_libxml_node_free_list/
答案 2 :(得分:3)
我在linux更新后发现xml几乎同样的问题(和PHP 7.0 - > 7.1一起)。
对我来说,解决方案非常简单:
sudo apt install php7.1-xml
答案 3 :(得分:0)
我遇到了同样的错误。据报道丢失的文件存在,文件权限对我来说没问题,PHP是使用正确的用户和组执行的。
对我来说,它有助于删除所有PHP软件包并重新开始。
以下命令应该在Debian / Ubuntu系统上删除所有PHP包(包括PHP配置 - 之前进行备份):
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
检查PHP是否被删除:
php -v
这应该返回类似"命令未找到的内容:php"。
然后,再次安装PHP,例如:
sudo apt-get install php7.1 php7.1-xml php7.1-fpm php7.1-json
答案 4 :(得分:0)
尽管这不是直接的解决方案,但希望至少可以节省一个人的宝贵时间。
打开您的php.ini文件。
就我而言
我的cli ini位于/etc/php/7.4/cli/php.ini
和位于/etc/php/7.4/apache2/php.ini中的另一个
搜索 extension = xsl 和 对此行添加注释 //放置';'在行的最前面
保存并退出编辑器,即可完成。
答案 5 :(得分:-1)
在我的情况下,一些php包没有升级,所以我只需要执行dist-upgrade:
sudo apt-get dist-upgrade