Class 'DOMDocument' not found

PhpXmlMagento

Php Problem Overview


I've found an error on a page in my Magento application; it always show this message error when I visit it:

> Fatal error: Class 'DOMDocument' not found in /home/.../lib/Zend/Feed/Abstract.php on line 95

Can you give me a solution? I'm using magento 1.4.1.1.

Php Solutions


Solution 1 - Php

You need to install the DOM extension. You can do so on Debian / Ubuntu using:

sudo apt-get install php-dom

And on Centos / Fedora / Red Hat:

yum install php-xml

If you get conflicts between PHP packages, you could try to see if the specific PHP version package exists instead: e.g. php53-xml if your system runs PHP5.3.

Solution 2 - Php

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 [with php:remi-8.0 enabled]: dnf install php-xml

Solution 3 - Php

PHP8: (latest version)

sudo apt-get install php8.0-xml

PHP7:

sudo apt-get install php7.1-xml

You can also do:

sudo apt-get install php-dom

and apt-get will show you where it is.

Solution 4 - Php

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.

In case anyone using 5.6 versions then go with this way

sudo apt-get install php5.6-xml

For PHP ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

or by

yum install php-xml

Solution 5 - Php

I'm using Centos and the followings worked for me , I run this command

yum --enablerepo remi install php-xml

And restarted the Apache with this command

sudo service httpd restart

Solution 6 - Php

Create an empty PHP file and put only <?php phpinfo(); in it, look at it in a browser.
Check if you can spot --disable-dom in the configuration options and/or if you can see details about the DOM extension in the list below.

If you cannot see DOM in the list or you see it is disabled, your PHP installation does not include the DOM extension. You'll need to recompile your PHP installation from source to remedy that.

Solution 7 - Php

After a long time suffering from it in PHPunit...

For those using namespace, which is very common with Frameworks or CMS, a good check in addition to seeing if php-xml is installed and active, is to remember to declare the DOMDocument after the namespace:

namespace YourNameSpace\YourNameSpace;

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

Solution 8 - Php

In my case the problem was it was the use of namespace at the top of php file, exemple :

namespace MediaWiki\Extensions\ParserFunctions;

To solve this problem add the following line:

use DOMDocument;

So no need of installing dom or xml if they are already installed. It is a php language trap.

Solution 9 - Php

This help for me (Ubuntu Linux) PHP 5.6.3

> sudo apt-get install php5.6-dom

Thats work for me.

Solution 10 - Php

For PHP 7.4 Install the DOM extension.

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

For previous PHP releases, replace with your version.

Solution 11 - Php

Using Suse Linux (Linux linux 3.16.7-48-default) and PHP 5.6.1 as root, this helped:

zypper in php5-dom

plus restart

systemctl restart apache2

Solution 12 - Php

On fedora 26:

dnf install php-dom

Fixes it !

Solution 13 - Php

For Centos 7 and php 7.1:
yum install php71w-xml
apachectl restart

Solution 14 - Php

If compiling from source with --disable-all then DOMDocument support can be enabled with
--enable-dom

Example:

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

Tested and working for Centos7 and PHP7

Solution 15 - Php

I'm using CentOS 7 with virtualmin and three PHP versions. I also have REMI repo enabled. it worked for me:

Step 1:

Just append PHP major version number like this php{version number}-xml. And run yum install

yum install php70-php-xml
yum install php71-php-xml
yum install php72-php-xml

Step 2:

Don't forget to restart Apache:

service httpd restart

Solution 16 - Php

On a Amazon Linux 2 with PHP 8.0, I had to

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

Do not forget to restart PHP

systemctl restart php-fpm

Solution 17 - Php

If you are using PHP7.0 to install Magento, I suggest to install all extensions by this command

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

I need to Google some times to meet Magento requirement.

I think you can replace the PHP version to 7.x if you use another PHP version

And restart Apache is needed to load new extensions

sudo service apache2 restart

Solution 18 - Php

PHP 7.X Centos 7

I got dependency issues when trying to install module with above suggestions, adding this flag:

--enablerepo=remi-php7X

Resolved dependencies.

So

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

Then

service httpd restart

Ref: Install PHP Modules

Solution 19 - Php

this is the lastest for php v 8.0

sudo apt-get install php8.0-xml

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionws_123View Question on Stackoverflow
Solution 1 - PhpDeanView Answer on Stackoverflow
Solution 2 - PhpLimon MonteView Answer on Stackoverflow
Solution 3 - PhpAlbert sView Answer on Stackoverflow
Solution 4 - PhpinrsaurabhView Answer on Stackoverflow
Solution 5 - PhpikuchrisView Answer on Stackoverflow
Solution 6 - PhpdecezeView Answer on Stackoverflow
Solution 7 - PhpFellipe SanchesView Answer on Stackoverflow
Solution 8 - PhpartView Answer on Stackoverflow
Solution 9 - PhpAugusto DuncanView Answer on Stackoverflow
Solution 10 - PhpJacmanView Answer on Stackoverflow
Solution 11 - PhpZartagView Answer on Stackoverflow
Solution 12 - PhpB2FView Answer on Stackoverflow
Solution 13 - PhpAriView Answer on Stackoverflow
Solution 14 - PhpDidThisView Answer on Stackoverflow
Solution 15 - PhpImtiazView Answer on Stackoverflow
Solution 16 - PhpAamirRView Answer on Stackoverflow
Solution 17 - Phpvanduc1102View Answer on Stackoverflow
Solution 18 - PhpBrownriceView Answer on Stackoverflow
Solution 19 - PhpBrandon StewartView Answer on Stackoverflow