Không tìm thấy lớp 'DOMDocument'


208

Tôi đã tìm thấy một lỗi trên một trang trong ứng dụng Magento của tôi; Nó luôn hiển thị lỗi thông báo này khi tôi truy cập nó:

Lỗi nghiêm trọng: Không tìm thấy lớp 'DOMDocument' trong /home/.../lib/Zend/Feed/ Abauge.php trên dòng 95

Bạn có thể cho tôi một giải pháp? Tôi đang sử dụng magento 1.4.1.1.


1
Câu trả lời này (kích hoạt php-xml) có vẻ mạch lạc, tại sao lại nghi ngờ nó thay vì chỉ kiểm tra nó? Từ một vài tìm kiếm trên google, có vẻ như đây là một trong những vấn đề có thể xảy ra
koopajah

1
Tôi chỉ sợ khi tôi thử "yum cài đặt php-xml", nó sẽ làm phiền trang web magento của tôi ..
ws_123

DomDocumentthay vì DOMDocumentđôi khi có thể khắc phục vấn đề này.
jirarium

Câu trả lời:


299

Bạn cần cài đặt phần mở rộng DOM . Bạn có thể làm như vậy trên Debian / Ubuntu bằng cách sử dụng:

sudo apt-get install php-dom

Và trên Centos / Fedora / Mũ đỏ:

yum install php-xml

Nếu bạn gặp xung đột giữa các gói PHP 5 và PHP 5.3, bạn có thể thử xem liệu php53-xmlgói đó có tồn tại không.


30
cài đặt php-xml đã giải quyết vấn đề này cho tôi nhưng đừng quên 'dịch vụ khởi động lại httpd'
zzapper

2
@zzapper cảm ơn, điều đó đã đưa tôi đến đường ray! Trong trường hợp của tôi, tôi cần phải khởi động lại apache2 service apache2 restart.
Shautieh

2
nhớ khởi động lại apache sau đó
Jahmic

5
Đối với PHP7, nó chỉ là php-doc.
Jared

9
Đối với tôi:sudo apt-get install php7.1-xml
Rafael Barros

160

PHP 7.0 :

  • Ubuntu: apt-get install php7.0-xml
  • CentOS / Fedora / Mũ đỏ: yum install php70w-xml

PHP 7.1 :

  • Ubuntu: apt-get install php7.1-xml
  • CentOS / Fedora / Mũ đỏ: yum install php71w-xml

PHP 7.2 :

  • Ubuntu: apt-get install php7.2-xml
  • CentOS / Fedora / Mũ đỏ: yum install php72w-xml

PHP 7.3 :

  • Ubuntu: apt-get install php7.3-xml
  • CentOS / Fedora / Mũ đỏ: yum install php73w-xml

PHP 7.4 :

  • Ubuntu: apt-get install php7.4-xml
  • CentOS / Fedora / Mũ đỏ: yum install php74w-xml

10
nhớ khởi động lại apache sau đó
Jahmic

Tôi đang chạy PHP 7 (7.0.15-1 ~ dotdeb + 8.1) trên Nginx VS (thông qua Docker) và điều này hoạt động như một cơ duyên! Đừng quên thực hiện 'docker-compose restart'!
StephanieQ

1
PHP 7.2, CentOS yum install php72w-xmlvà sau đó khởi động lại dịch vụ
Silvan

Không có một php-xmlbí danh / gói ảo?
b Liệu

Điều này cũng bắt đầu xảy ra với quá trình chuyển đổi php7.3 sang 7.4. Khi mô-đun PHP của máy chủ web dựa trên 7.3 và php-xml là 7.4. Cập nhật lên phiên bản PHP nhất quán (một trong hai) hoạt động tốt.
Amos Jeffries

26

PHP7: phiên bản mới nhất:

sudo apt-get install php7.1-xml

bạn cũng có thể làm:

sudo apt-get install php-dom

và apt-get sẽ cho bạn thấy nó ở đâu


6

Tôi đang sử dụng Centos và các hoạt động sau đây đã giúp tôi, tôi chạy lệnh này

yum --enablerepo remi install php-xml

Và khởi động lại Apache bằng lệnh này

sudo service httpd restart

3
Cảm ơn, khởi động lại máy chủ đã làm việc! Tôi phải làm service apache2 restarttrên Ubuntu.
dùng3413723

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.

Trong trường hợp bất cứ ai sử dụng phiên bản 5.6 thì hãy đi theo cách này

sudo apt-get install php5.6-xml

Đối với Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

hoặc bằng cách

yum install php-xml

4

Tạo một tệp PHP trống và chỉ đặt <?php phpinfo();trong đó, xem xét nó trong trình duyệt.
Kiểm tra xem bạn có thể nhận ra --disable-domtrong các tùy chọn cấu hình và / hoặc nếu bạn có thể xem chi tiết về tiện ích mở rộng DOM trong danh sách bên dưới.

Nếu bạn không thể thấy DOM trong danh sách hoặc bạn thấy nó bị vô hiệu hóa, cài đặt PHP của bạn không bao gồm phần mở rộng DOM. Bạn sẽ cần biên dịch lại cài đặt PHP của bạn từ nguồn để khắc phục điều đó.


tôi đã tìm thấy --disable-dom trong Configure Command, tôi nên làm gì tiếp theo?
ws_123

Điều đó phụ thuộc vào hệ thống của bạn. Trường hợp xấu nhất bạn phải biên dịch lại PHP từ đầu.
lừa dối

Dựa vào tùy chọn cấu hình thường là một lỗi, hãy đọc blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC để nó bị xóa khỏi đầu ra phpinfo trong một số biến dạng (debian, fedora ... )
Remi Collet

1
Nếu được biên dịch từ nguồn, bạn có thể sử dụng--enable-dom
Did This 7/11/2017

3

Điều này giúp tôi (Ubuntu Linux) PHP 5.6.3

sudo apt-get cài đặt php5.6-dom

Đó là công việc cho tôi.


1

Sử dụng Suse Linux (Linux linux 3.16.7-48-default) và PHP 5.6.1 làm root, điều này giúp:

zypper in php5-dom

cộng với khởi động lại

systemctl restart apache2

1

Trên fedora 26:

dnf install php-dom

Sửa nó!


1

Đối với Centos 7 và php 7.1:
yum cài đặt
khởi động lại apachectl php71w-xml


1

Nếu biên dịch từ nguồn với --disable-allthì có thể bật hỗ trợ DOMDocument với
--enable-dom

Thí dụ:

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

Đã thử nghiệm và làm việc cho Centos7 và PHP7


1

Tôi đang sử dụng CentOS 7 với virtualmin và ba phiên bản PHP. Tôi cũng đã kích hoạt repo REMI. nó làm việc cho tôi:

Bước 1:

Chỉ cần thêm số phiên bản chính của PHP như thế này php{version number}-xml. Và chạyyum install

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

Bước 2:

Đừng quên khởi động lại Apache:

service httpd restart

0

Nếu bạn đang sử dụng PHP7.0 để cài đặt Magento, tôi khuyên bạn nên cài đặt tất cả các tiện ích mở rộng bằng lệnh này

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

Tôi cần Google một số lần để đáp ứng yêu cầu của Magento.

Tôi nghĩ bạn có thể thay thế phiên bản PHP thành 7.x nếu bạn sử dụng phiên bản PHP khác

Và khởi động lại Apache là cần thiết để tải các phần mở rộng mới

sudo service apache2 restart

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.