找不到类“ DOMDocument”


209

我在Magento应用程序的页面上发现错误;当我访问它时,它总是显示此消息错误:

致命错误:在第95行的/home/.../lib/Zend/Feed/Abstract.php中找不到类'DOMDocument'

你能给我一个解决方案吗?我正在使用magento 1.4.1.1。


1
这个答案(启用php-xml)似乎很连贯,为什么要怀疑它而不是仅仅对其进行测试?从一些Google搜索看来,这似乎是可能的问题之一
koopajah

1
我只是害怕当我尝试“ yum install php-xml”时,它会打扰我的magento网站
。–

DomDocument而不是DOMDocument有时可以解决这个问题。
jirarium

Answers:


300

您需要安装DOM扩展。您可以使用以下命令在Debian / Ubuntu上进行操作:

sudo apt-get install php-dom

在Centos / Fedora / Red Hat上:

yum install php-xml

如果您在PHP 5和PHP 5.3软件包之间遇到冲突,则可以尝试查看是否 php53-xml软件包是否存在。


31
安装php-xml为我解决了这个问题,但不要忘记“服务httpd重新启动”
zzapper 2013年

2
@zzapper谢谢,这让我步入正轨!就我而言,我需要重新启动apache2 service apache2 restart
Shautieh

2
记得之后重新启动apache
Jahmic '16

5
对于PHP7,它只是php-doc
杰瑞德(Jared)

9
对我而言:sudo apt-get install php7.1-xml
拉斐尔·巴罗斯

160

PHP 7.0

  • Ubuntu: apt-get install php7.0-xml
  • CentOS / Fedora / Red Hat: yum install php70w-xml

PHP 7.1

  • Ubuntu: apt-get install php7.1-xml
  • CentOS / Fedora / Red Hat: yum install php71w-xml

PHP 7.2

  • Ubuntu: apt-get install php7.2-xml
  • CentOS / Fedora / Red Hat: yum install php72w-xml

PHP 7.3

  • Ubuntu: apt-get install php7.3-xml
  • CentOS / Fedora / Red Hat: yum install php73w-xml

PHP 7.4

  • Ubuntu: apt-get install php7.4-xml
  • CentOS / Fedora / Red Hat: yum install php74w-xml

10
记得之后重新启动apache
Jahmic '16

我正在Nginx VS(通过Docker)上运行PHP 7(7.0.15-1〜dotdeb + 8.1),这就像一个魅力!不要忘记执行docker-compose restart!
StephanieQ

1
PHP 7.2,CentOS yum install php72w-xml,然后重新启动服务
Silvan,

没有php-xml别名/虚拟软件包吗?
宾基

从php7.3到7.4的过渡也开始出现这种情况。当Web服务器的PHP模块基于7.3且php-xml为7.4时。更新到一致的PHP版本(任一版本)都可以。
阿莫斯·杰弗里斯

26

PHP7:最新版本:

sudo apt-get install php7.1-xml

您也可以:

sudo apt-get install php-dom

apt-get会告诉你它在哪里


6

我正在使用Centos,以下内容对我有用,我运行此命令

yum --enablerepo remi install php-xml

并用此命令重启Apache

sudo service httpd restart

3
谢谢,重新启动服务器工作了!我不得不service apache2 restart在ubuntu 上做。
user3413723

6
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

对于PHP Ver PHP7,Ubuntu:

sudo apt-get install php7.1-xml

yum install php-xml

4

创建一个空的PHP文件,仅将<?php phpinfo();其放入其中,然后在浏览器中对其进行查看。
检查是否可以--disable-dom在配置选项中找到和/或是否可以在下面的列表中查看有关DOM扩展的详细信息。

如果您在列表中看不到DOM或已将其禁用,则您的PHP安装不包括DOM扩展。您需要从源代码重新编译PHP安装以解决该问题。


我在配置命令中发现了--disable-dom,下一步该怎么办?
ws_123

这取决于您的系统。最坏的情况是您必须从头开始重新编译PHP。
deceze

依靠configure选项通常是一个错误,请参阅blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC,因此已在某些发行版(debian,fedora ...)中将其从phpinfo输出中删除。 )
Remi Collet

1
如果从源代码编译,则可以使用--enable-dom
DidThis '17


1

使用Suse Linux(Linux linux 3.16.7-48-default)和PHP 5.6.1作为根目录,这有助于:

zypper in php5-dom

加重启

systemctl restart apache2

1

在fedora 26上:

dnf install php-dom

解决它!


1

对于Centos 7和php 7.1:
yum install php71w-xml
apachectl restart


1

如果使用从源代码进行编译,--disable-all则可以通过以下方式启用DOMDocument支持:
--enable-dom

例:

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

经过测试并适用于Centos7和PHP7


1

我使用带有virtualmin和三个PHP版本的CentOS 7。我还启用了REMI回购。它为我工作:

第1步:

只需像这样附加PHP主要版本号php{version number}-xml。然后跑yum install

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

第2步:

不要忘记重启Apache:

service httpd restart

0

如果您使用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版本,则可以将PHP版本替换为7.x。

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

sudo service apache2 restart

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.