找不到“DOMDocument”类

时间:2013-01-18 08:48:33

标签: php xml magento

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

  

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

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

18 个答案:

答案 0 :(得分:237)

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

sudo apt-get install php-dom

在Centos / Fedora / Red Hat上:

yum install php-xml

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

答案 1 :(得分:142)

PHP 7.0,Ubuntu:

/usr/lib/jvm/java-8-oracle/bin/java....
route: 801
Process finished with exit code 0

PHP 7.0,CentOS / Fedora / Red Hat:

apt-get install php7.0-xml

PHP 7.1,Ubuntu:

yum install php70w-xml

PHP 7.1,CentOS / Fedora / Red Hat:

apt-get install php7.1-xml

PHP 7.2,Ubuntu:

yum install php71w-xml

PHP 7.2,CentOS / Fedora / Red Hat:

apt-get install php7.2-xml

答案 2 :(得分:25)

PHP7:最新版本:

sudo apt-get install php7.1-xml

你也可以这样做:

sudo apt-get install php-dom

和apt-get会告诉你它在哪里

答案 3 :(得分:6)

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

yum --enablerepo remi install php-xml

使用此命令重新启动Apache

sudo service httpd restart

答案 4 :(得分:5)

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

答案 5 :(得分:4)

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

如果您无法在列表中看到DOM,或者您发现它已被禁用,那么您的PHP安装不包含DOM扩展。您需要从源代码重新编译PHP安装以解决问题。

答案 6 :(得分:3)

这对我有帮助(Ubuntu Linux)PHP 5.6.3

  

sudo apt-get install php5.6-dom

这对我有用。

答案 7 :(得分:2)

就我而言,问题在于在 php 文件顶部使用了命名空间,例如:

namespace MediaWiki\Extensions\ParserFunctions;

要解决此问题,请添加以下行:

use DOMDocument;

因此,如果已经安装了 dom 或 xml,则无需安装。是php语言陷阱。

答案 8 :(得分:1)

在fedora 26上:

dnf install php-dom

修复它!

答案 9 :(得分:1)

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

答案 10 :(得分:1)

如果使用--disable-all从源代码编译,则可以使用
启用DOMDocument支持 --enable-dom

示例:

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

测试并使用Centos7和PHP7

答案 11 :(得分:1)

我正在使用带有virtualmin和三个PHP版本的CentOS 7。我还启用了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

答案 12 :(得分:1)

对于PHP 7.4,安装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版本,请替换为您的版本。

答案 13 :(得分:1)

以root身份使用Suse Linux(Linux linux 3.16.7-48-default)和PHP 5.6.1,这有助于:

zypper in php5-dom

加上重启

systemctl restart apache2

答案 14 :(得分: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

我需要多次访问Google才能满足Magento的要求。

我认为,如果您使用其他PHP版本,则可以将PHP版本替换为7.x

并需要重新启动Apache才能加载新扩展

sudo service apache2 restart

答案 15 :(得分:0)

PHP 7.X Centos 7

在尝试安装具有上述建议的模块时,遇到了依赖性问题,添加了以下标志:

--enablerepo=remi-php7X

已解决的依赖性。

所以

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

然后

service httpd restart

参考: Install PHP Modules

答案 16 :(得分:0)

长时间在PHPunit中遭受痛苦...

对于那些使用命名空间(这在Frameworks或CMS中非常常见)的人来说,除了查看php-xml是否已安装并处于活动状态之外,一个不错的检查是要记住在命名空间后声明DOMDocument:

namespace YourNameSpace\YourNameSpace;

use DOMDocument; //<--- here, check this!

答案 17 :(得分:0)

这是 php v 8.0 的最新版本

sudo apt-get install php8.0-xml