Klasse 'DOMDocument' nicht gefunden


208

Ich habe auf einer Seite in meiner Magento-Anwendung einen Fehler gefunden. Es zeigt immer diesen Meldungsfehler an, wenn ich ihn besuche:

Schwerwiegender Fehler: Klasse 'DOMDocument' nicht in /home/.../lib/Zend/Feed/Abstract.php in Zeile 95 gefunden

Können Sie mir eine Lösung geben? Ich benutze Magento 1.4.1.1.


1
Diese Antwort (php-xml aktivieren) scheint kohärent zu sein. Warum sollte man daran zweifeln, anstatt sie nur zu testen? Von ein paar Google-Suchanfragen scheint es eines der möglichen Probleme zu sein
— Koopajah

1
Ich erschrecke nur, wenn ich versuche "yum install php-xml", es wird meine Magento-Site stören ..
— ws_123

DomDocumentstatt DOMDocumentkann manchmal dieses Problem beheben.
— Jirarium

Antworten:


299

Sie müssen die DOM- Erweiterung installieren . Sie können dies unter Debian / Ubuntu tun, indem Sie:

sudo apt-get install php-dom

Und auf Centos / Fedora / Red Hat:

yum install php-xml

Wenn Konflikte zwischen PHP 5- und PHP 5.3-Paketen auftreten, können Sie versuchen, festzustellen, ob das php53-xmlPaket stattdessen vorhanden ist.


30
Die Installation von php-xml hat dieses Problem für mich gelöst, aber vergessen Sie nicht den 'Service httpd
— restart

2
@zzapper danke, das hat mich auf die Schienen gebracht! In meinem Fall musste ich apache2 neu starten service apache2 restart.
— Shautieh


5
Für PHP7 ist es nur php-doc.
— Jared

9
Für mich:sudo apt-get install php7.1-xml
— Rafael Barros

160

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


Ich verwende PHP 7 (7.0.15-1 ~ dotdeb + 8.1) auf einem Nginx VS (über Docker) und das hat wie ein Zauber funktioniert! Vergessen Sie nicht, "Docker-Compose-Neustart" durchzuführen!
— StephanieQ

1
PHP 7.2, CentOS yum install php72w-xmlund dann Dienst neu starten
— Silvan

Gibt es kein php-xmlAlias ​​/ virtuelles Paket?
— Binki

Dies beginnt auch mit dem Übergang von php7.3 zu 7.4. Wenn das Webserver-PHP-Modul auf 7.3 basiert und php-xml 7.4 ist. Das Aktualisieren auf eine konsistente PHP-Version (eine davon) funktioniert einwandfrei.
— Amos Jeffries

26

PHP7: die neueste Version:

sudo apt-get install php7.1-xml

Sie können auch tun:

sudo apt-get install php-dom

und apt-get zeigt Ihnen, wo es ist


6

Ich verwende Centos und die folgenden Funktionen haben für mich funktioniert. Ich führe diesen Befehl aus

yum --enablerepo remi install php-xml

Und startete den Apache mit diesem Befehl neu

sudo service httpd restart

3
Danke, der Neustart des Servers hat funktioniert! Ich musste service apache2 restartauf Ubuntu machen.
— 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.

Wenn jemand 5.6-Versionen verwendet, gehen Sie diesen Weg

sudo apt-get install php5.6-xml

Für Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

oder von

yum install php-xml

4

Erstellen Sie eine leere PHP-Datei und fügen Sie sie nur <?php phpinfo();ein. Sehen Sie sie sich in einem Browser an.
Überprüfen Sie, ob Sie --disable-domin den Konfigurationsoptionen erkennen können und / oder ob Sie Details zur DOM-Erweiterung in der folgenden Liste sehen können.

Wenn Sie DOM nicht in der Liste sehen oder sehen, dass es deaktiviert ist, enthält Ihre PHP-Installation nicht die DOM-Erweiterung. Sie müssen Ihre PHP-Installation von der Quelle neu kompilieren, um dies zu beheben.


Ich habe --disable-dom in Configure Command gefunden. Was soll ich als nächstes tun?
— ws_123

Das hängt von Ihrem System ab. Im schlimmsten Fall müssen Sie PHP von Grund auf neu kompilieren.
— Täuschung

Das Verlassen auf die Konfigurationsoption ist meistens ein Fehler. Lesen Sie blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC, damit es in einer gewissen Verteilung (debian, fedora ...) aus der phpinfo-Ausgabe entfernt wurde. )
— Remi Collet

1
Wenn aus der Quelle kompiliert, könnten Sie--enable-dom
— DidThis

3

Diese Hilfe für mich (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

Das funktioniert bei mir.


1

Unter Verwendung von Suse Linux (Linux Linux 3.16.7-48-Standard) und PHP 5.6.1 als Root half dies:

zypper in php5-dom

plus Neustart

systemctl restart apache2

1

Auf Fedora 26:

dnf install php-dom

Behebt es!


1

Für Centos 7 und PHP 7.1:
Installieren Sie php71w-xml
apachectl restart


1

Beim Kompilieren aus dem Quellcode mit --disable-allkann die DOMDocument-Unterstützung mit aktiviert werden
--enable-dom

Beispiel:

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

Getestet und funktioniert für Centos7 und PHP7


1

Ich verwende CentOS 7 mit virtualmin und drei PHP-Versionen. Ich habe auch REMI Repo aktiviert. es hat bei mir funktioniert:

Schritt 1:

Fügen Sie einfach die Hauptversionsnummer von PHP wie folgt hinzu php{version number}-xml. Und Rennyum install

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

Schritt 2:

Vergessen Sie nicht, Apache neu zu starten:

service httpd restart

0

Wenn Sie PHP7.0 zur Installation von Magento verwenden, empfehle ich, alle Erweiterungen mit diesem Befehl zu installieren

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

Ich muss einige Male googeln, um die Magento-Anforderungen zu erfüllen.

Ich denke, Sie können die PHP-Version auf 7.x ersetzen, wenn Sie eine andere PHP-Version verwenden

Zum Neuladen neuer Erweiterungen ist ein Neustart von Apache erforderlich

sudo service apache2 restart

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.