【问题标题】:Class 'DOMDocument' not found找不到类“DOMDocument”
【发布时间】:2013-01-01 22:42:07
【问题描述】:

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

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

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

【问题讨论】:

  • 这个答案(启用php-xml)似乎是连贯的,为什么要怀疑它而不是仅仅测试它呢?从一些谷歌搜索来看,这似乎是可能的问题之一
  • 当我尝试“yum install php-xml”时我只是害怕,它会干扰我的 magento 网站..
  • DomDocument 而不是 DOMDocument 有时可以解决此问题。

标签: php xml magento


【解决方案1】:

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

sudo apt-get install php-dom

在 Centos / Fedora / Red Hat 上:

yum install php-xml

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

【讨论】:

  • 安装 php-xml 为我解决了这个问题,但不要忘记“服务 httpd 重启”
  • @zzapper 谢谢,这让我走上了正轨!就我而言,我需要重新启动 apache2 service apache2 restart
  • 之后记得重启apache
  • 对于 PHP7,它只是 php-doc
  • 对我来说:sudo apt-get install php7.1-xml
【解决方案2】:

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

【讨论】:

  • 之后记得重启apache
  • 我在 Nginx VS(通过 Docker)上运行 PHP 7 (7.0.15-1~dotdeb+8.1),这就像一个魅力!不要忘记执行`docker-compose restart'!
  • PHP 7.2, CentOS yum install php72w-xml 然后重启服务
  • 没有php-xml别名/虚拟包吗?
  • 这也开始出现在 php7.3 到 7.4 的转换中。当 web 服务器 PHP 模块是基于 7.3 并且 php-xml 是 7.4 时。更新到一致的 PHP 版本(任何一个)都可以正常工作。
【解决方案3】:

PHP8:(最新版本)

sudo apt-get install php8.0-xml

PHP7

sudo apt-get install php7.1-xml

你也可以这样做:

sudo apt-get install php-dom

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

【讨论】:

    【解决方案4】:

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

    yum --enablerepo remi install php-xml
    

    并使用此命令重新启动 Apache

    sudo service httpd restart
    

    【讨论】:

    • 谢谢,重启服务器成功!我必须在 ubuntu 上做 service apache2 restart
    【解决方案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 版本 PHP7,Ubuntu:

    sudo apt-get install php7.1-xml
    

    或通过

    yum install php-xml
    

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

      • 我在配置命令中找到了--disable-dom,下一步该怎么做?
      • 这取决于您的系统。最坏的情况是你必须从头开始重新编译 PHP。
      • 依赖配置选项通常是一个错误,请阅读blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC,因此它已在某些发行版(debian、fedora...)中从 phpinfo 输出中删除
      • 如果从源代码编译,你可以使用--enable-dom
      【解决方案7】:

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

      sudo apt-get install php5.6-dom

      这对我有用。

      【讨论】:

        【解决方案8】:

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

        命名空间 MediaWiki\Extensions\ParserFunctions;

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

        使用 DOMDocument;

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

        【讨论】:

          【解决方案9】:

          在PHPunit中苦了好久...

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

          namespace YourNameSpace\YourNameSpace;
          
          use DOMDocument; //<--- here, check this!
          

          【讨论】:

            【解决方案10】:

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

            zypper in php5-dom
            

            加重启

            systemctl restart apache2
            

            【讨论】:

              【解决方案11】:

              在 Fedora 26 上:

              dnf install php-dom
              

              修复它!

              【讨论】:

                【解决方案12】:

                对于 Centos 7 和 php 7.1:
                百胜安装 php71w-xml
                apachectl 重启

                【讨论】:

                  【解决方案13】:

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

                  例子:

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

                  为 Centos7 和 PHP7 测试和工作

                  【讨论】:

                    【解决方案14】:

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

                    第 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
                    

                    【讨论】:

                      【解决方案15】:

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

                      【讨论】:

                        【解决方案16】:

                        在带有 PHP 8.0 的 Amazon Linux 2 上,我不得不

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

                        别忘了重启 PHP

                        systemctl restart php-fpm
                        

                        【讨论】:

                          【解决方案17】:

                          如果你使用 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

                          【讨论】:

                            【解决方案18】:

                            PHP 7.X Centos 7

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

                            --enablerepo=remi-php7X

                            已解决的依赖关系。

                            所以

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

                            然后

                            service httpd restart

                            参考: Install PHP Modules

                            【讨论】:

                            【解决方案19】:

                            这是 php v 8.0 的最新版本

                            sudo apt-get install php8.0-xml
                            

                            【讨论】:

                              猜你喜欢
                              • 2012-05-28
                              • 2019-04-14
                              • 2017-05-21
                              • 2018-03-06
                              • 2020-03-31
                              • 2018-02-21
                              • 2015-10-13
                              • 2019-04-06
                              • 2016-08-24
                              相关资源
                              最近更新 更多