266

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

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

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

4

19 回答 19

374

您需要安装DOM扩展。您可以在 Debian / Ubuntu 上使用:

sudo apt-get install php-dom

在 Centos / Fedora / Red Hat 上:

yum install php-xml

如果您遇到 PHP 包之间的冲突,您可以尝试查看是否存在特定的 PHP 版本包:例如php53-xml,如果您的系统运行 PHP5.3。

于 2013-01-18T08:59:26.993 回答
200

PHP 7.0

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

PHP 7.1

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

PHP 7.2

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

PHP 7.3

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

PHP 7.4

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

PHP 8.0

  • Ubuntu:apt-get install php8.0-xml
  • CentOS 8 [已php:remi-8.0启用]:dnf install php-xml
于 2016-03-01T12:20:50.930 回答
29

PHP8:(最新版本)

sudo apt-get install php8.0-xml

PHP7

sudo apt-get install php7.1-xml

你也可以这样做:

sudo apt-get install php-dom

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

于 2016-07-25T17:54:04.450 回答
8
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 版本 PHP7,Ubuntu:

sudo apt-get install php7.1-xml

或通过

yum install php-xml
于 2017-04-08T14:23:19.750 回答
7

我正在使用Centos,以下对我有用,我运行这个命令

yum --enablerepo remi install php-xml

并使用此命令重新启动 Apache

sudo service httpd restart
于 2016-02-20T08:42:34.987 回答
4

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

如果您在列表中看不到 DOM 或者您看到它被禁用,则您的 PHP 安装不包含 DOM 扩展。您需要从源代码重新编译您的 PHP 安装来解决这个问题。

于 2013-01-18T08:52:57.233 回答
3

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

sudo apt-get install php5.6-dom

那对我有用。

于 2017-05-19T12:01:07.980 回答
3

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

命名空间 MediaWiki\Extensions\ParserFunctions;

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

使用 DOMDocument;

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

于 2021-03-13T17:57:25.133 回答
2

经过很长时间在PHPunit中遭受它......

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

namespace YourNameSpace\YourNameSpace;

use DOMDocument; //<--- here, check this!
于 2020-09-22T16:46:11.267 回答
1

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

zypper in php5-dom

加上重启

systemctl restart apache2
于 2016-12-05T18:32:58.157 回答
1

在 Fedora 26 上:

dnf install php-dom

修复它!

于 2017-08-14T12:36:05.777 回答
1

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

于 2017-09-16T17:44:06.620 回答
1

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

例子:

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

经过测试并适用于 Centos7 和 PHP7

于 2017-11-07T11:50:41.787 回答
1

我正在使用带有 virtualmin 和三个 PHP 版本的 CentOS 7。我也启用了 REMI repo。它对我有用:

第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
于 2018-09-03T14:41:37.430 回答
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 版本,请替换为您的版本。

于 2020-10-21T18:06:11.610 回答
1

在带有 PHP 8.0 的 Amazon Linux 2 上,我必须

yum-config-manager --enable remi-php80
yum install php-xml

不要忘记重新启动 PHP

systemctl restart php-fpm
于 2021-10-05T06:03:29.500 回答
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

于 2018-11-17T06:14:01.467 回答
0

PHP 7.X Centos 7

尝试使用上述建议安装模块时遇到依赖性问题,添加此标志:

--enablerepo=remi-php7X

解决的依赖关系。

所以

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

然后

service httpd restart

参考: 安装 PHP 模块

于 2020-09-06T22:09:42.210 回答
0

这是 php v 8.0 的最新版本

sudo apt-get install php8.0-xml
于 2020-12-22T03:06:14.917 回答