Nie znaleziono klasy „DOMDocument”


209

Znalazłem błąd na stronie w mojej aplikacji Magento; zawsze wyświetla ten błąd komunikatu, gdy go odwiedzam:

Błąd krytyczny: nie znaleziono klasy „DOMDocument” w /home/.../lib/Zend/Feed/Abstract.php w linii 95

Czy możesz mi dać rozwiązanie? Używam magento 1.4.1.1.


1
Ta odpowiedź (włącz php-xml) wydaje się spójna, po co w to wątpić zamiast po prostu ją testować? Z kilku wyszukiwań w Google wydaje się, że jest to jeden z możliwych problemów
koopajah

1
po prostu przestraszyłem się, gdy spróbuję „mniam zainstalować php-xml”, to zakłóci moją stronę magento ..
ws_123 18.01.2013

DomDocumentzamiast DOMDocumentczasem może rozwiązać ten problem.
jirarium

Odpowiedzi:


300

Musisz zainstalować rozszerzenie DOM . Możesz to zrobić na Debian / Ubuntu, używając:

sudo apt-get install php-dom

A w Centos / Fedora / Red Hat:

yum install php-xml

Jeśli wystąpią konflikty między pakietami PHP 5 i PHP 5.3, możesz spróbować sprawdzić, czy php53-xmlpakiet istnieje.


31
instalacja php-xml rozwiązała to dla mnie, ale nie zapomnij o 'restartowaniu usługi httpd'
zzapper,

2
@zzapper dzięki, że dostałem się na szyny! W moim przypadku musiałem zrestartować apache2 service apache2 restart.
Shautieh

2
pamiętaj, aby później ponownie uruchomić apache
Jahmic

5
W przypadku PHP7 jest to po prostu php-doc.
Jared

9
Dla mnie: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

10
pamiętaj, aby później ponownie uruchomić apache
Jahmic

Używam PHP 7 (7.0.15-1 ~ dotdeb + 8.1) na Nginx VS (przez Docker) i działało to jak urok! Nie zapomnij wykonać „restartu dokera”!
StephanieQ

1
PHP 7.2, CentOS, yum install php72w-xmla następnie uruchom ponownie usługę
Silvan

Czy nie ma php-xmlpakietu alias / wirtualny?
binki

To również zaczyna się pojawiać przy przejściu z php7.3 na 7.4. Gdy moduł PHP serwera WWW jest oparty na 7.3, a php-xml to 7.4. Aktualizacja do spójnej wersji PHP (jednej) działa dobrze.
Amos Jeffries

26

PHP7: najnowsza wersja:

sudo apt-get install php7.1-xml

możesz także:

sudo apt-get install php-dom

a apt-get pokaże ci, gdzie to jest


6

Korzystam z Centos i następujące dla mnie zadziałały, uruchamiam to polecenie

yum --enablerepo remi install php-xml

I ponownie uruchomiłem Apache za pomocą tego polecenia

sudo service httpd restart

3
Dzięki, ponowne uruchomienie serwera działało! Musiałem zrobić service apache2 restartna 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.

Jeśli ktoś używa wersji 5.6, skorzystaj z tej metody

sudo apt-get install php5.6-xml

Dla Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

lub przez

yum install php-xml

4

Utwórz pusty plik PHP i umieść tylko <?php phpinfo();w nim, spójrz na niego w przeglądarce.
Sprawdź, czy możesz dostrzec --disable-domopcje konfiguracji i / lub czy możesz zobaczyć szczegóły dotyczące rozszerzenia DOM na poniższej liście.

Jeśli nie widzisz DOM na liście lub widzisz, że jest wyłączony, twoja instalacja PHP nie zawiera rozszerzenia DOM. Aby to naprawić, musisz ponownie skompilować instalację PHP ze źródła.


znalazłem --disable-dom w Konfiguruj polecenie, co powinienem zrobić dalej?
ws_123

To zależy od twojego systemu. W najgorszym przypadku musisz ponownie skompilować PHP od zera.
deceze

Poleganie na opcji konfiguracji jest najczęściej błędem, przeczytaj blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC, więc zostały usunięte z danych wyjściowych phpinfo w pewnym dystrakcji (debian, fedora ... )
Remi Collet

1
Jeśli skompilowano ze źródła, możesz użyć--enable-dom
DidThis

3

Ta pomoc dla mnie (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

To działa dla mnie.


1

Używanie Suse Linux (Linux linux 3.16.7-48-default) i PHP 5.6.1 jako root, pomogło to:

zypper in php5-dom

plus restart

systemctl restart apache2


1

W przypadku Centos 7 i php 7.1:
yum zainstaluj php71w-xml
apachectl restart


1

Jeśli kompilujesz ze źródła, --disable-allwtedy obsługę DOMDocument można włączyć za pomocą
--enable-dom

Przykład:

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

Testowane i działające na Centos7 i PHP7


1

Używam CentOS 7 z virtualmin i trzema wersjami PHP. Mam również włączone repozytorium REMI. działało dla mnie:

Krok 1:

Wystarczy dołączyć numer głównej wersji PHP w ten sposób php{version number}-xml. I biegnijyum install

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

Krok 2:

Nie zapomnij zrestartować Apache:

service httpd restart

0

Jeśli używasz PHP7.0 do instalacji Magento, proponuję zainstalować wszystkie rozszerzenia za pomocą tego polecenia

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

Potrzebuję czasem Google, aby spełnić wymagania Magento.

Myślę, że możesz zastąpić wersję PHP 7.x, jeśli używasz innej wersji PHP

Uruchom ponownie Apache, aby załadować nowe rozszerzenia

sudo service apache2 restart

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.