Kelas 'Dokumen DOM' tidak ditemukan

209

Saya menemukan kesalahan pada halaman di aplikasi Magento saya; selalu menampilkan pesan kesalahan ini ketika saya mengunjunginya:

Kesalahan fatal: Kelas 'Dokumen DOM' tidak ditemukan di /home/.../lib/Zend/Feed/Abstract.php on line 95

Bisakah Anda memberi saya solusi? Saya menggunakan Magento 1.4.1.1.

ws_123
sumber
1
Jawaban ini (aktifkan php-xml) tampaknya masuk akal, mengapa ragu dan bukannya hanya mengujinya? Dari beberapa pencarian google, ini tampaknya menjadi salah satu masalah yang mungkin terjadi
koopajah
1
saya hanya menakut-nakuti ketika saya mencoba "yum install php-xml", itu akan mengganggu situs
magento
DomDocumentalih-alih DOMDocumentterkadang dapat memperbaiki masalah ini.
jirarium

Jawaban:

300

Anda perlu menginstal ekstensi DOM . Anda dapat melakukannya di Debian / Ubuntu menggunakan:

sudo apt-get install php-dom

Dan di Centos / Fedora / Red Hat:

yum install php-xml

Jika Anda mendapat konflik antara paket PHP 5 dan PHP 5.3, Anda bisa mencoba melihat apakah php53-xmlpaket itu ada.

Dekan
sumber
31
menginstal php-xml menyelesaikan ini untuk saya tetapi jangan lupa 'service httpd restart'
zzapper
2
@ ehapper terima kasih, itu membuat saya di rel! Dalam kasus saya, saya perlu me-restart apache2 service apache2 restart.
Shautieh
2
ingatlah untuk memulai kembali apache sesudahnya
Jahmic
5
Untuk PHP7, hanya saja php-doc.
Jared
9
Bagi saya: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
sumber
10
ingatlah untuk memulai kembali apache sesudahnya
Jahmic
Saya menjalankan PHP 7 (7.0.15-1 ~ dotdeb + 8.1) pada Nginx VS (via Docker) dan ini bekerja seperti pesona! Jangan lupa untuk melakukan `docker-compose restart '!
StephanieQ
1
PHP 7.2, CentOS yum install php72w-xmldan kemudian restart layanan
Silvan
Apakah tidak ada php-xmlpaket alias / virtual?
binki
Ini juga mulai terjadi dengan transisi php7.3 ke 7.4. Ketika server web modul PHP didasarkan pada 7.3 dan php-xml adalah 7.4. Memperbarui ke versi PHP yang konsisten (salah satunya) berfungsi dengan baik.
Amos Jeffries
26

PHP7: versi terbaru:

sudo apt-get install php7.1-xml

Anda juga dapat melakukan:

sudo apt-get install php-dom

dan apt-get akan menunjukkan di mana tempatnya

Albert s
sumber
6

Saya menggunakan Centos dan berikut ini berfungsi untuk saya, saya menjalankan perintah ini

yum --enablerepo remi install php-xml

Dan restart Apache dengan perintah ini

sudo service httpd restart
ikuchris
sumber
3
Terima kasih, memulai ulang server berfungsi! Saya harus melakukannya service apache2 restartdi 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.

Jika ada orang yang menggunakan versi 5.6 kemudian pergi dengan cara ini

sudo apt-get install php5.6-xml

Untuk Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

atau oleh

yum install php-xml
inrsaurabh
sumber
4

Buat file PHP kosong dan masukkan hanya <?php phpinfo();di dalamnya, lihat di browser.
Periksa apakah Anda dapat menemukan --disable-domopsi konfigurasi dan / atau jika Anda dapat melihat detail tentang ekstensi DOM dalam daftar di bawah ini.

Jika Anda tidak dapat melihat DOM dalam daftar atau Anda melihatnya dinonaktifkan, instalasi PHP Anda tidak menyertakan ekstensi DOM. Anda harus mengkompilasi ulang instalasi PHP Anda dari sumber untuk memperbaikinya.

tipuan
sumber
saya menemukan --disable-dom di Configure Command, apa yang harus saya lakukan selanjutnya?
ws_123
Itu tergantung pada sistem Anda. Kasus terburuk Anda harus mengkompilasi ulang PHP dari awal.
tipuan
Mengandalkan opsi configure paling sering merupakan kesalahan, baca blog.remirepo.net/post/2010/09/29/phpinfo-BUG-atau- PEBKAC sehingga telah dihapus dari output phpinfo dalam beberapa distrobution (debian, fedora ... )
Remi Collet
1
Jika dikompilasi dari sumber, Anda dapat menggunakan--enable-dom
DidThis
3

Bantuan ini untuk saya (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

Itu berhasil untukku.

Augusto Duncan
sumber
1

Menggunakan Suse Linux (Linux linux 3.16.7-48-default) dan PHP 5.6.1 sebagai root, ini membantu:

zypper in php5-dom

plus restart

systemctl restart apache2
Zartag
sumber
1

Pada fedora 26:

dnf install php-dom

Memperbaikinya!

B2F
sumber
1

Untuk Centos 7 dan php 7.1:
yum instal restart php71w-xml
apachectl

Ari
sumber
1

Jika kompilasi dari sumber dengan --disable-allmaka dukungan DOMDocument dapat diaktifkan dengan
--enable-dom

Contoh:

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

Diuji dan bekerja untuk Centos7 dan PHP7

Apakah ini
sumber
1

Saya menggunakan CentOS 7 dengan virtualmin dan tiga versi PHP. Saya juga mengaktifkan repo REMI. Ini berhasil untuk saya:

Langkah 1:

Cukup tambahkan nomor versi utama PHP seperti ini php{version number}-xml. Dan lariyum install

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

Langkah 2:

Jangan lupa untuk me-restart Apache:

service httpd restart
Imtiaz
sumber
0

Jika Anda menggunakan PHP7.0 untuk menginstal Magento, saya sarankan untuk menginstal semua ekstensi dengan perintah ini

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

Saya perlu ke Google beberapa kali untuk memenuhi persyaratan Magento.

Saya pikir Anda dapat mengganti versi PHP ke 7.x jika Anda menggunakan versi PHP lain

Dan restart Apache diperlukan untuk memuat ekstensi baru

sudo service apache2 restart

vanduc1102
sumber