可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.
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
Check if PHP was removed:
php -v
This should return something like "command not found: php".
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