在 puphpet PHP 5.6 上找不到类“SimpleXMLElement”

Posted

技术标签:

【中文标题】在 puphpet PHP 5.6 上找不到类“SimpleXMLElement”【英文标题】:Class 'SimpleXMLElement' not found on puphpet PHP 5.6 【发布时间】:2016-05-15 10:00:30 【问题描述】:

我已经被这个错误困扰了好几个小时了,我似乎在互联网上找不到任何有用的信息。错误是经典

Fatal error: Class 'SimpleXMLElement' not found in 
/var/www/Navphp/nav/plugin/log/NavLog.php on line 29

I'm not using Namespace 所以这不是问题。

这是一个在生产中运行良好的项目,并且曾经在我以前使用 WampServer 和 PHP 5.6.2 的计算机上运行。现在我有了一台新电脑,我有兴趣用 puphpet 设置一个虚拟环境,但是我收到了这个错误。

根据 Docs,SimpleXMLElement 类应该默认随 PHP 提供。我没有在php.ini 上找到任何重要信息,在我的 phpinfo() 中有以下内容:

SimpleXML   Sterling Hughes, Marcus Boerger, Rob Richards

有什么建议吗?

谢谢

更新

只是为了添加这个

【问题讨论】:

【参考方案1】:

我遇到了这个问题,最后通过运行以下命令解决了:

apt install php5.6-xml

重新加载并重启apache2服务后:

service apache2 reload   

service apache2 restart

可能需要重新启动 PHP

systemctl restart php-fpm

【讨论】:

【参考方案2】:

如果您在 AWS Cloud 9 中运行 ubuntu。然后从您的菜单栏->窗口->新建终端->输入 sudo apt install php-xml

【讨论】:

【参考方案3】:

问题是我使用的是 Cent OS,而在这个 Linux 发行版中,php-libxml 包不是默认的。

我最终通过 PuPHPet GUI 生成了一台新机器,并在系统包中添加了以下要安装的包:

php-xml, php-simplexml

问题解决了。


对于使用 PHP 7 和 Ubuntu 的用户,@MPS 通过运行 apt-get install php7.0-xmlservice apache2 restart 解决了这个问题。

在 Centos 上,我们需要安装 XML php 包。如果您使用 PHP 7.0 的 php70w 存储库,您可以尝试 yum install php56w-xmlyum install php70w-xml

【讨论】:

谢谢,它对我有用。对于使用 PHP7 版本的其他人:apt-get install php7.0-xml 并且不要忘记 apache 重启:service apache2 restart 对于 PHP 5.6 它是:apt-get install php5.6-xml 如果你使用 nginx 重启它,使用:sudo service nginx restart

以上是关于在 puphpet PHP 5.6 上找不到类“SimpleXMLElement”的主要内容,如果未能解决你的问题,请参考以下文章

在 Heroku 上找不到类“Memcached”

发布在本地服务器上找不到 php 文件。

php - include()在远程服务器上找不到路径[重复]

在此服务器 PHP 上找不到请求的资源 /

Android ClassNotFoundException:在路径上找不到类

Android ClassNotFoundException:在路径上找不到类