Classe "DOMDocument" non trovata


210

Ho trovato un errore in una pagina nella mia applicazione Magento; mostra sempre questo messaggio di errore quando lo visito:

Errore irreversibile: classe 'DOMDocument' non trovata in /home/.../lib/Zend/Feed/Abstract.php sulla riga 95

Puoi darmi una soluzione? Sto usando Magento 1.4.1.1.


1
Questa risposta (abilita php-xml) sembra coerente, perché dubitarne invece di provarla? Da alcune ricerche su Google sembra essere uno dei possibili problemi
koopajah

1
mi spavento solo quando provo "yum install php-xml", disturberà il mio sito magento ..
ws_123,

DomDocumentinvece di a DOMDocumentvolte può risolvere questo problema.
jirarium,

Risposte:


300

Devi installare l' estensione DOM . Puoi farlo su Debian / Ubuntu usando:

sudo apt-get install php-dom

E su Centos / Fedora / Red Hat:

yum install php-xml

Se si verificano conflitti tra i pacchetti PHP 5 e PHP 5.3, è possibile provare a vedere se il php53-xmlpacchetto esiste invece.


32
l'installazione di php-xml ha risolto questo problema per me, ma non dimenticare il "riavvio del servizio httpd"
zzapper,

2
@zzapper grazie, che mi ha portato sui binari! Nel mio caso avevo bisogno di riavviare apache2 service apache2 restart.
Shautieh,

2
ricordati di riavviare apache in seguito
Jahmic,

5
Per PHP7, è solo php-doc.
Jared,

10
Per me: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

10
ricordati di riavviare apache in seguito
Jahmic,

Sto eseguendo PHP 7 (7.0.15-1 ~ dotdeb + 8.1) su un Nginx VS (tramite Docker) e questo ha funzionato come un fascino! Non dimenticare di eseguire il `riavvio comporre docker '!
StephanieQ,

1
PHP 7.2, CentOS yum install php72w-xmle quindi riavvia il servizio
Silvan

Non esiste un php-xmlpacchetto alias / virtuale?
binki,

Questo sta anche iniziando a verificarsi con la transizione da php7.3 a 7.4. Quando il modulo PHP del web server è basato su 7.3 e php-xml è 7.4. L'aggiornamento a una versione coerente di PHP (una delle due) funziona correttamente.
Amos Jeffries,

26

PHP7: l'ultima versione:

sudo apt-get install php7.1-xml

puoi anche fare:

sudo apt-get install php-dom

e apt-get ti mostrerà dove si trova


6

Sto usando Centos e i seguenti hanno funzionato per me, ho eseguito questo comando

yum --enablerepo remi install php-xml

E riavviato Apache con questo comando

sudo service httpd restart

3
Grazie, il riavvio del server ha funzionato! Ho dovuto fare service apache2 restartsu 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.

Nel caso in cui chiunque utilizzi le versioni 5.6, seguire questa procedura

sudo apt-get install php5.6-xml

Per Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

o da

yum install php-xml

4

Crea un file PHP vuoto e mettilo solo <?php phpinfo();in esso, guardalo in un browser.
Controlla se riesci a individuare --disable-domle opzioni di configurazione e / o se puoi vedere i dettagli sull'estensione DOM nell'elenco seguente.

Se non vedi DOM nella lista o vedi che è disabilitato, la tua installazione di PHP non include l'estensione DOM. Dovrai ricompilare l'installazione di PHP dall'origine per rimediare.


ho trovato --disable-dom in Configura comando, cosa devo fare dopo?
ws_123,

Dipende dal tuo sistema. Nel peggiore dei casi devi ricompilare PHP da zero.
Inganno

Affidarsi all'opzione di configurazione è spesso un errore, leggi blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC, quindi è stato rimosso dall'output phpinfo in qualche distrobution (debian, fedora ... )
Remi Collet,

1
Se compilato dalla fonte, potresti usare--enable-dom
DidThis il

3

Questo aiuto per me (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

Questo funziona per me.


1

Usando Suse Linux (Linux linux 3.16.7-48-default) e PHP 5.6.1 come root, questo ha aiutato:

zypper in php5-dom

più riavvio

systemctl restart apache2

1

Su fedora 26:

dnf install php-dom

Risolve!


1

Per Centos 7 e php 7.1:
yum installa php71w-xml
apachectl restart


1

Se la compilazione dalla sorgente con --disable-allallora il supporto DOMDocument può essere abilitato con
--enable-dom

Esempio:

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

Testato e funzionante per Centos7 e PHP7


1

Sto usando CentOS 7 con virtualmin e tre versioni di PHP. Ho anche abilitato il repository REMI. ha funzionato per me:

Passo 1:

Basta aggiungere il numero di versione principale di PHP come questo php{version number}-xml. E corriyum install

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

Passo 2:

Non dimenticare di riavviare Apache:

service httpd restart

0

Se stai usando PHP7.0 per installare Magento, ti suggerisco di installare tutte le estensioni con questo comando

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

Ho bisogno di Google alcune volte per soddisfare i requisiti di Magento.

Penso che puoi sostituire la versione di PHP a 7.x se usi un'altra versione di PHP

E riavviare Apache è necessario per caricare nuove estensioni

sudo service apache2 restart

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.