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.

ws_123
źródło
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.

Dziekan
źródło
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
Limon Monte
źródło
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

Albert s
źródło
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
ikuchris
źródło
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
inrsaurabh
źródło
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.

deceze
źródło
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.

Augusto Duncan
źródło
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
Zartag
źródło
1

Na fedora 26:

dnf install php-dom

Naprawia to!

B2F
źródło
1

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

Ari
źródło
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

Zrobił to
źródło
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
Imtiaz
źródło
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

vanduc1102
źródło