我在Magento应用程序的某一页上发现了一个错误;它总是显示这个消息错误时,我访问它:

致命错误:在/home/……/lib/ zend / feed / abstract .php第95行中找不到类“DOMDocument”

你能给我一个解决办法吗?我使用的是magento 1.4.1.1。


创建一个空的PHP文件,只放<?php phpinfo ();在浏览器中查看它。 检查你是否能在配置选项中发现——disable-dom和/或你是否能在下面的列表中看到关于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。

我正在使用Centos和以下为我工作,我运行这个命令

yum --enablerepo remi install php-xml

并使用此命令重新启动Apache

sudo service httpd restart

PHP 8.2

Ubuntu: apt-get install php8.2-xml CentOS 8[与php:remi-8.2启用]:dnf安装php-xml

PHP 8.1

Ubuntu:安装php8.1-xml CentOS 8[与php:remi-8.1启用]:dnf安装php-xml

PHP 8.0

Ubuntu: apt-get install php8.0-xml CentOS 8[启用php:remi-8.0]: dnf install php-xml

PHP8:(最新版本)

sudo apt-get install php8.0-xml

PHP7:

sudo apt-get install php7.1-xml

你还可以:

sudo apt-get install php-dom

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:

sudo apt-get install php7.1-xml

或通过

yum install php-xml

这有助于我(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从源代码编译,那么可以使用——disable-all启用DOMDocument支持 ——enable-dom

例子:

./configure --disable-all --enable-dom

测试并适用于Centos7和PHP7

我使用CentOS 7 virtualmin和三个PHP版本。我还启用了REMI回购。这招对我很管用:

步骤1:

只需要像PHP {version number}-xml这样添加PHP的主版本号。然后运行yum install

yum install php70-php-xml
yum install php71-php-xml
yum install php72-php-xml

步骤2:

不要忘记重新启动Apache:

service httpd restart

如果您正在使用PHP7.0安装Magento,我建议通过这个命令安装所有扩展

Sudo apt-get install php7.0 php7.0-xml php7.0-mcrypt php7.0-curl php7.0-cli php7.0-mysql php7.0-gd libapache2-mod-php7.0 php7.0-intl php7.0-soap php7.0-zip php7.0-bcmath

我需要谷歌一些时间,以满足Magento的要求。

我认为你可以将PHP版本替换为7。如果使用其他PHP版本

并且需要重新启动Apache来加载新的扩展

Sudo服务apache2重启

PHP 7。X Centos 7

当我尝试使用上述建议安装模块时,我遇到了依赖关系问题,添加了这个标志:

--enablerepo=remi-php7X

解决依赖关系。

So

sudo yum——enablerepo=remi-php7X install php-xml

Then

服务HTTPD重启

裁判: 安装PHP模块

经过很长一段时间的痛苦,在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 / Fedora / Red Hat:

yum update
yum install php74w-xml
systemctl restart httpd

对于以前的PHP版本,请替换为您的版本。

这是PHP v 8.0的最新版本

sudo apt-get install php8.0-xml

在我的情况下,问题是它是在php文件顶部的名称空间的使用,例如:

namespace MediaWiki\Extensions\ParserFunctions;

要解决这个问题,添加以下行:

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