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.

ws_123
quelle
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.

Dean
quelle
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
2
Denken Sie
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
Limon Monte
quelle
10
Denken Sie
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

Albert s
quelle
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
Ikuchris
quelle
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
inrsaurabh
quelle
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.

täuschen
quelle
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.

Augusto Duncan
quelle
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
Zartag
quelle
1

Auf Fedora 26:

dnf install php-dom

Behebt es!

B2F
quelle
1

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

Ari
quelle
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

Machte dies
quelle
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
Imtiaz
quelle
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

vanduc1102
quelle