PHP Warning: PHP Startup: Unable to load dynamic library

匿名 (未验证) 提交于 2019-12-03 02:52:02

问题:

When I run this command php -v
this error comes up:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/dom.so' - /usr/lib/php/20160303/dom.so: undefined symbol: php_libxml_node_free_list in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/xmlreader.so' - /usr/lib/php/20160303/xmlreader.so: undefined symbol: dom_node_class_entry in Unknown on line 0

PHP Warning: PHP Startup: Unable to load dynamic library '/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 Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.1.7-1+ubuntu14.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies

回答1:

Safe solution is to reinstall all php7 related packages.

You can do it by simply entering this command to console:

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

This solution will keep your configuration unchanged



回答2:

(In ubuntu 14.04 or above)

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

reference:

https://gnh1201.wordpress.com/2017/07/24/php-7-0-undefined-symbol-php_libxml_node_free_list/



回答3:

I experienced the same errors. The reportedly missing files were present, the file permissions looked ok to me, and PHP was executed using the correct user and group.

For me it helped, to remove all PHP packages and do a fresh start.

  1. The following command should remove all PHP packages on a Debian/Ubuntu systems (including the PHP config - make a backup before):

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

    Source: https://askubuntu.com/a/187278

  2. Check if PHP was removed:

    php -v 

    This should return something like "command not found: php".

  3. Then, install PHP again, e.g.:

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


回答4:

I found almost the same problem with xml after linux update (and PHP 7.0 -> 7.1 with it).

The solution for me was pretty simple:

sudo apt install php7.1-xml 


回答5:

In my case some php packages were not upgraded, so I simply had to perform a dist-upgrade:

sudo apt-get dist-upgrade 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!