几天前,我使用 进行了常规更新apt-get update; apt-get upgrade
。一切运行正常,但后来我意识到 php 在我的服务器上玩了一些花招。
我开始收到以下错误消息
`Unable to load dynamic library '/usr/lib/php/20151012/xsl.so' -
/usr/lib/php/20151012/xsl.so: cannot open shared object file: No such file or directory`
我还收到了 XML 错误消息,但经过几次安装后问题就解决了。出于某种原因,提到的库文件不存在。
我在 Ubuntu 14.04 服务器(最新)上使用 php7,当然它有时会安装 php5.6 的东西。
我谷歌了一下,发现我应该安装php-xml
和php-xsl
库。我这样做了,我甚至为 php5.6、7.0、7.1 和 7.2 安装了它,使用:
apt-get install php-xsl php5.6-xsl php7.0-xsl php7.1-xsl php7.2-xsl
我这样做了,之后我使用了sudo /etc/init.d/php7.0-fpm restart
并且service apache2 restart
没有出现任何错误,但是当我打开我的网站时仍然出现 XSL 错误。
当我phpinfo()
在解析其他 .ini 文件部分我得到了这个:/etc/php/7.0/apache2/conf.d/20-xsl.ini
这是的别名,/etc/php/7.0/mods-available/xsl.ini
并且在该文档里面我有这个:
; configuration for php xml module
; priority=20
extension=xsl.so
问题是,这个错误消息有时会出现在 Ajax 请求中,从而破坏其结果,这很烦人。有什么办法可以解决这个问题吗?
答案1
对我来说,解决这个问题的唯一方法是使用以下方法彻底删除所有 php 版本
sudo apt-get purge php
sudo apt-get purge php7.0
sudo apt-get purge php7.1
sudo apt-get purge php7.2
之后我必须再次安装它,包括我正在使用的所有扩展。
之后,我必须禁用当前启用的 php5.6 sudo a2dismod php5
,然后使用启用 php7 sudo a2enmod php7.0
。
之后,我重新启动了服务器,sudo service apache2 restart
并逐渐启用我需要的某些 php 模块。