我在Magento应用程序的某一页上发现了一个错误;它总是显示这个消息错误时,我访问它:
致命错误:在/home/……/lib/ zend / feed / abstract .php第95行中找不到类“DOMDocument”
你能给我一个解决办法吗?我使用的是magento 1.4.1.1。
<?php phpinfo();
--disable-dom
如果您在列表中看不到DOM,或者您看到它被禁用,那么您的PHP安装不包括DOM扩展。为了解决这个问题,您需要从源代码重新编译PHP安装。
你需要安装DOM扩展。你可以在Debian / Ubuntu上使用:
sudo apt-get install php-dom
Centos / Fedora / Red Hat:
yum install php-xml
如果你发现PHP包之间存在冲突,你可以尝试查看特定的PHP版本包是否存在:例如,如果你的系统运行PHP5.3,则使用php53-xml。
php53-xml
我正在使用Centos,下面的命令为我工作,我运行这个命令
yum --enablerepo remi install php-xml
并使用此命令重新启动Apache
sudo service httpd restart
PHP 8.1
apt-get install php8.1-xml
php:remi-8.1
dnf install php-xml
PHP 8.0
apt-get install php8.0-xml
php:remi-8.0
PHP 7.4:
apt-get install php7.4-xml
yum install php74w-xml
PHP8:(最新版本)
sudo apt-get install php8.0-xml
PHP7:
sudo apt-get install php7.1-xml
你还可以:
apt-get会告诉你它的位置。
apt-get
使用Suse Linux (Linux Linux 3.16.7-48-default)和PHP 5.6.1作为根用户,这有助于:
zypper in php5-dom
+重启
systemctl restart apache2
Package php-dom is a virtual package provided by: php7.1-xml 7.1.3+-3+deb.sury.org~xenial+1 php7.0-xml 7.0.17-3+deb.sury.org~xenial+1 php5.6-xml 5.6.30-9+deb.sury.org~xenial+1 You should explicitly select one to install.
如果有人使用5.6版本,那么就采用这种方式
sudo apt-get install php5.6-xml
对于PHP7, Ubuntu:
或通过
这有助于我(Ubuntu Linux) PHP 5.6.3
Sudo apt-get install php5.6-dom
这对我很有用。
关于fedora 26:
dnf install php-dom
修复它!
对于Centos 7和php 7.1:
yum install php71w-xml apachectl restart
--disable-all
--enable-dom
例子:
./configure --disable-all --enable-dom
测试并适用于Centos7和PHP7
我使用CentOS 7 virtualmin和三个PHP版本。我还启用了REMI回购。这招对我很管用:
只需要像这样添加PHP主版本号php{version number}-xml。并运行yum install
php{version number}-xml
yum install
yum install php70-php-xml yum install php71-php-xml yum install php72-php-xml
不要忘记重新启动Apache:
service httpd restart
如果您正在使用PHP7.0安装Magento,我建议通过这个命令安装所有扩展
我需要谷歌一些时间,以满足Magento的要求。
我认为你可以将PHP版本替换为7。如果使用其他PHP版本
并且需要重新启动Apache来加载新的扩展
PHP 7。X Centos 7
当我尝试使用上述建议安装模块时,我遇到了依赖关系问题,添加了这个标志:
--enablerepo=remi-php7X
解决依赖关系。
所以
sudo yum --enablerepo=remi-php7X install php-xml
然后
经过很长一段时间的痛苦,在PHPunit…
对于那些使用命名空间(这在框架或CMS中非常常见)的人来说,除了查看php-xml是否安装并处于活动状态外,还有一个很好的检查,就是记住在命名空间之后声明DOMDocument:
namespace YourNameSpace\YourNameSpace; use DOMDocument; //<--- here, check this!
安装DOM扩展。
Debian / Ubuntu:
sudo apt-get update sudo apt-get install php7.4-xml sudo service apache2 restart
Centos /软呢帽/红帽:
yum update yum install php74w-xml systemctl restart httpd
对于以前的PHP版本,请替换为您的版本。
这是PHP v 8.0的最新版本
在我的情况下,问题是它是在php文件顶部的名称空间的使用,例如:
namespace MediaWiki\Extensions\ParserFunctions;
To solve this problem add the following line:
use DOMDocument;
因此,如果已经安装了dom或xml,则不需要安装它们。这是一个php语言陷阱。
在带有PHP 8.0的Amazon Linux 2上,我不得不这样做
yum-config-manager --enable remi-php80 yum install php-xml
不要忘记重新启动PHP
systemctl restart php-fpm