有关 simplexml / libxml 的帮助

有关 simplexml / libxml 的帮助

我所在公司的老板刚刚将我们的一台服务器升级到了 16.04 版,从此simplexml它就不再运行了。

我在 apache 日志中看到的错误是:

未捕获错误:调用未定义的函数 simplexml_load_string()

我运行时看到以下内容php -i

php:/usr/local/lib/libxml2.so.2:没有可用的版本信息(php 所需)
/usr/local/lib/libxml2.so.2 是指向同一目录(/usr/local/lib)中 libxml2.so.2.7.2 的符号链接。

根据webmin,当前安装的软件包是libxml2.so.2.9.4
我绝不是 Linux 专家,但我们的 PHP 代码需要simplexml,所以我需要修复这个问题。

有人能提供关于如何解决这个问题的建议吗?

答案1

好的,经过大量研究和反复试验后我终于明白了这一点。

/usr/local/lib/libxml2.so并且/usr/local/lib/libxml2.so.2都是指向/usr/local/lib/libxml2.so.2.7.2

正确使用的 libxml 版本是 2.9.4,安装在/usr/lib/x86_64-linux-gnu/libxml2.so.2.9.4

我删除了符号链接(见下文)

 sudo rm /usr/local/lib/libxml2.so
 sudo rm /usr/local/lib/libxml2.so.2

然后重新创建符号链接,指向正确的版本

 sudo ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.4 /usr/local/lib/libxml2.so
 sudo ln -s /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.4 /usr/local/lib/libxml2.so.2

一旦我完成此操作并重新启动 Apache,它就可以正常工作。

而我在这里认为 DLL 地狱只存在于 Windows 中;)

相关内容