[英]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 :
apt-get install php7.0-xml
yum install php70w-xml
PHP 7.1 :
apt-get install php7.1-xml
yum install php71w-xml
PHP 7.2 :
apt-get install php7.2-xml
yum install php72w-xml
PHP 7.3 :
apt-get install php7.3-xml
yum install php73w-xml
PHP 7.4 :
apt-get install php7.4-xml
yum install php74w-xml
PHP 8.0
apt-get install php8.0-xml
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。 它對我有用:
只需像這樣php{version number}-xml
附加 PHP 主要版本號。 並運行yum install
yum install php70-php-xml
yum install php71-php-xml
yum install php72-php-xml
不要忘記重新啟動 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.