簡體   English   中英

找不到類“DOMDocument”

[英]Class 'DOMDocument' not found

我在我的 Magento 應用程序的頁面上發現了一個錯誤; 當我訪問它時,它總是顯示此消息錯誤:

致命錯誤:在第 95 行的 /home/.../lib/Zend/Feed/Abstract.php 中找不到類 'DOMDocument'

你能給我一個解決方案嗎? 我正在使用 magento 1.4.1.1。

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

sudo apt-get install php-dom

在 Centos / Fedora / Red Hat 上:

yum install php-xml

如果您遇到 PHP 包之間的沖突,您可以嘗試查看是否存在特定的 PHP 版本包:例如,如果您的系統運行 PHP5.3,則為php53-xml

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

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會告訴你它在哪里。

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

我正在使用Centos ,以下對我有用,我運行這個命令

yum --enablerepo remi install php-xml

並使用此命令重新啟動 Apache

sudo service httpd restart

創建一個空的 PHP 文件並只放<?php phpinfo(); 在其中,在瀏覽器中查看它。
檢查您是否可以在配置選項中發現--disable-dom和/或是否可以在下面的列表中查看有關 DOM 擴展的詳細信息。

如果您在列表中看不到 DOM 或者您看到它被禁用,則您的 PHP 安裝不包含 DOM 擴展。 您需要從源代碼重新編譯您的 PHP 安裝來解決這個問題。

經過很長時間在PHPunit中遭受它......

對於那些在框架或 CMS 中很常見的使用命名空間的人,除了查看 php-xml 是否已安裝並處於活動狀態之外,一個很好的檢查是記住在命名空間之后聲明 DOMDocument:

namespace YourNameSpace\YourNameSpace;

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

在我的情況下,問題是它是在 php 文件頂部使用命名空間,例如:

namespace MediaWiki\Extensions\ParserFunctions;

要解決此問題,請添加以下行:

use DOMDocument;

因此,如果已經安裝了 dom 或 xml,則無需安裝它們。 這是一個php語言陷阱。

這對我有幫助(Ubuntu Linux)PHP 5.6.3

sudo apt-get install php5.6-dom

那對我有用。

對於 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 版本,請替換為您的版本。

使用 Suse Linux (Linux linux 3.16.7-48-default) 和 PHP 5.6.1 作為 root,這有助於:

zypper in php5-dom

加上重啟

systemctl restart apache2

在 Fedora 26 上:

dnf install php-dom

修復它!

對於 Centos 7 和 php 7.1:
百勝安裝 php71w-xml
apachectl 重啟

如果使用--disable-all從源代碼編譯,則可以使用啟用 DOMDocument 支持
--enable-dom

例子:

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

經過測試並適用於 Centos7 和 PHP7

我正在使用帶有 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

在帶有 PHP 8.0 的 Amazon Linux 2 上,我必須

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

不要忘記重新啟動 PHP

systemctl restart php-fpm

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

PHP 7.X Centos 7

嘗試使用上述建議安裝模塊時遇到依賴性問題,添加此標志:

--enablerepo=remi-php7X

解決的依賴關系。

所以

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

然后

service httpd restart

參考:安裝 PHP 模塊

這是 php v 8.0 的最新版本

sudo apt-get install php8.0-xml

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM