Classe «DOMDocument» introuvable

210

J'ai trouvé une erreur sur une page de mon application Magento; il affiche toujours ce message d'erreur lorsque je le visite:

Erreur fatale: classe 'DOMDocument' introuvable dans /home/.../lib/Zend/Feed/Abstract.php sur la ligne 95

Pouvez-vous me donner une solution? J'utilise magento 1.4.1.1.

ws_123
la source
1
Cette réponse (activer php-xml) semble cohérente, pourquoi en douter au lieu de simplement la tester? D'après quelques recherches sur Google, il semble que ce soit l'un des problèmes possibles
koopajah
1
je fais juste peur quand j'essaye "yum install php-xml", ça va déranger mon site magento ..
ws_123
DomDocumentau lieu de DOMDocumentpeut parfois résoudre ce problème.
jirarium

Réponses:

300

Vous devez installer l' extension DOM . Vous pouvez le faire sur Debian / Ubuntu en utilisant:

sudo apt-get install php-dom

Et sur Centos / Fedora / Red Hat:

yum install php-xml

Si vous rencontrez des conflits entre les packages PHP 5 et PHP 5.3, vous pouvez essayer de voir si le php53-xmlpackage existe à la place.

doyen
la source
32
l'installation de php-xml a résolu cela pour moi mais n'oubliez pas le 'service httpd restart'
zzapper
2
@zzapper merci, ça m'a mis sur les rails! Dans mon cas, je devais redémarrer apache2 service apache2 restart.
Shautieh
2
n'oubliez pas de redémarrer apache par la suite
Jahmic
5
Pour PHP7, c'est juste php-doc.
Jared
10
Pour moi:sudo apt-get install php7.1-xml
Rafael Barros
161

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
Limon Monte
la source
10
n'oubliez pas de redémarrer apache par la suite
Jahmic
J'utilise PHP 7 (7.0.15-1 ~ dotdeb + 8.1) sur un Nginx VS (via Docker) et cela a fonctionné comme un charme! N'oubliez pas de faire un "redémarrage de docker-compose"!
StephanieQ
1
PHP 7.2, CentOS yum install php72w-xmlet redémarrage du service
Silvan
N'y a-t-il pas un php-xmlpaquet alias / virtuel?
binki
Cela commence également à se produire avec la transition php7.3 à 7.4. Lorsque le module PHP du serveur Web est basé sur 7.3 et php-xml est 7.4. La mise à jour vers une version PHP cohérente (l'une ou l'autre) fonctionne bien.
Amos Jeffries
26

PHP7: la dernière version:

sudo apt-get install php7.1-xml

vous pouvez aussi faire:

sudo apt-get install php-dom

et apt-get vous montrera où il se trouve

Albert s
la source
6

J'utilise Centos et les éléments suivants ont fonctionné pour moi, j'exécute cette commande

yum --enablerepo remi install php-xml

Et redémarré Apache avec cette commande

sudo service httpd restart
ikuchris
la source
3
Merci, le redémarrage du serveur a fonctionné! Je devais faire service apache2 restartsur ubuntu.
user3413723
6
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.

Dans le cas où toute personne utilisant des versions 5.6 opte pour cette méthode

sudo apt-get install php5.6-xml

Pour Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

ou par

yum install php-xml
inrsaurabh
la source
4

Créez un fichier PHP vide et placez-le uniquement <?php phpinfo();, regardez-le dans un navigateur.
Vérifiez si vous pouvez repérer --disable-domdans les options de configuration et / ou si vous pouvez voir des détails sur l'extension DOM dans la liste ci-dessous.

Si vous ne voyez pas DOM dans la liste ou si vous voyez qu'il est désactivé, votre installation PHP n'inclut pas l'extension DOM. Vous devrez recompiler votre installation PHP à partir des sources pour y remédier.

décomposer
la source
j'ai trouvé --disable-dom dans Configure Command, que dois-je faire ensuite?
ws_123
Cela dépend de votre système. Dans le pire des cas, vous devez recompiler PHP à partir de zéro.
décomposer
S'appuyer sur l'option de configuration est le plus souvent une erreur, lisez blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC donc il a été supprimé de la sortie phpinfo dans certaines distrobutions (debian, fedora ... )
Remi Collet
1
Si compilé à partir de la source, vous pouvez utiliser--enable-dom
DidThis
3

Cette aide pour moi (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

Cela fonctionne pour moi.

Augusto Duncan
la source
1

En utilisant Suse Linux (Linux linux 3.16.7-48 par défaut) et PHP 5.6.1 en tant que root, cela a aidé:

zypper in php5-dom

plus redémarrer

systemctl restart apache2
Zartag
la source
1

Sur fedora 26:

dnf install php-dom

Le corrige!

B2F
la source
1

Pour Centos 7 et php 7.1:
yum install php71w-xml
apachectl restart

Ari
la source
1

Si la compilation à partir de la source avec le --disable-allsupport DOMDocument peut être activée avec
--enable-dom

Exemple:

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

Testé et fonctionne pour Centos7 et PHP7

DidThis
la source
1

J'utilise CentOS 7 avec virtualmin et trois versions PHP. J'ai également le dépôt REMI activé. cela a fonctionné pour moi:

Étape 1:

Ajoutez simplement le numéro de version principale de PHP comme ceci php{version number}-xml. Et couriryum install

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

Étape 2:

N'oubliez pas de redémarrer Apache:

service httpd restart
Imtiaz
la source
0

Si vous utilisez PHP7.0 pour installer Magento, je suggère d'installer toutes les extensions par cette commande

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

J'ai besoin de Google quelques fois pour répondre aux exigences de Magento.

Je pense que vous pouvez remplacer la version PHP par 7.x si vous utilisez une autre version PHP

Et redémarrer Apache est nécessaire pour charger de nouvelles extensions

sudo service apache2 restart

vanduc1102
la source