Reputation: 5681
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.
Upvotes: 330
Views: 377975
Reputation: 121
When using PHP 8.3 and Ubuntu 22.04 following may fix this for you:
$ sudo apt install php8.3-xml
Upvotes: 5
Reputation: 11
sudo chmod -R 775 path sudo chmod -R 777 path sudo apt-get install php8.3-xml
Upvotes: 0
Reputation: 6354
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.
Upvotes: 477
Reputation: 1172
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
Upvotes: 7
Reputation: 2534
I'm using CentOS 7 with virtualmin and three PHP versions. I also have REMI repo enabled. it worked for me:
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
Don't forget to restart Apache:
service httpd restart
Upvotes: 1
Reputation: 551
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
Upvotes: 1
Reputation: 743
this is the lastest for php v 8.0
sudo apt-get install php8.0-xml
Upvotes: -1
Reputation: 1592
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.
Upvotes: 4
Reputation: 12218
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
Upvotes: 3
Reputation: 41
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.
Upvotes: 4
Reputation: 692
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
Upvotes: 11
Reputation: 2602
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.
Upvotes: 33
Reputation: 54439
PHP 8.2
apt-get install php8.2-xml
php:remi-8.2
enabled]: dnf install php-xml
PHP 8.1
apt-get install php8.1-xml
php:remi-8.1
enabled]: dnf install php-xml
PHP 8.0
apt-get install php8.0-xml
php:remi-8.0
enabled]: dnf install php-xml
Upvotes: 255
Reputation: 8155
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!
Upvotes: 8
Reputation: 553
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
Upvotes: 0
Reputation: 6245
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
Upvotes: -1
Reputation: 31
This help for me (Ubuntu Linux) PHP 5.6.3
sudo apt-get install php5.6-dom
Thats work for me.
Upvotes: 3
Reputation: 391
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
Upvotes: 1
Reputation: 522510
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.
Upvotes: 4