Класс 'DOMDocument' не найден

99

Я нашел ошибку на странице в приложении Magento; он всегда показывает эту ошибку сообщения, когда я нахожу ее:

Неустранимая ошибка: класс DOMDocument не найден в /home/.../lib/Zend/Feed/Abstract.php в строке 95

Можете ли вы дать мне решение? Я использую magento 1.4.1.1.

  • 1
    Этот ответ (включите php-xml) кажется последовательным, зачем сомневаться в этом, а не просто проверять? Из нескольких поисков в Google, кажется, одна из возможных проблем
  • 1
    я просто пугаюсь, когда я пытаюсь "yum install php-xml", это нарушит мой magento сайт ..
Показать ещё 1 комментарий
Теги:
magento

11 ответов

131
Лучший ответ

Вам нужно установить расширение DOM. Вы можете сделать это на Debian/Ubuntu, используя:

sudo apt-get install php5-dom

И на Centos/Fedora/Red Hat:

yum install php-xml

Если возникают конфликты между пакетами PHP 5 и PHP 5.3, вы можете попытаться увидеть, существует ли вместо этого пакет php53-xml.

  • 0
    как насчет Centos ..
  • 0
    Для Cent OS: smartwebdeveloper.com/centos/…
Показать ещё 11 комментариев
82

Решение PHP7 для Ubuntu:

apt-get install php7.0-xml

Решение PHP7 для CentOS/Fedora/Red Hat:

yum install php70w-xml
  • 8
    не забудьте перезапустить Apache впоследствии
  • 0
    Я запускаю PHP 7 (7.0.15-1 ~ dotdeb + 8.1) на Nginx VS (через Docker), и это работает как шарм! Не забудьте выполнить перезагрузку docker-compose!
Показать ещё 2 комментария
14

PHP7: последняя версия:

sudo apt-get install php7.1-xml

вы также можете сделать:

sudo apt-get install php-dom

и apt-get покажет вам, где находится

4

Я использую Centos, и для меня работали, я запускаю эту команду

yum --enablerepo remi install php-xml

И перезапустил Apache с помощью этой команды

sudo service httpd restart
  • 3
    Спасибо, перезагрузка сервера сработала! Мне пришлось сделать service apache2 restart на Ubuntu.
3
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.

В случае, если кто-то использует версии 5.6, пойдите таким образом

sudo apt-get install php5.6-xml
2

Создайте пустой PHP файл и поместите в него только <?php phpinfo();, посмотрите на него в браузере.
Проверьте, можете ли вы указать --disable-dom в параметрах конфигурации и/или если вы можете увидеть подробности о расширении DOM в приведенном ниже списке.

Если вы не видите DOM в списке или видите, что он отключен, ваша установка PHP не включает расширение DOM. Вам нужно будет перекомпилировать вашу установку PHP из источника, чтобы исправить это.

  • 0
    я нашел --disable-dom в Configure Command, что мне делать дальше?
  • 0
    Это зависит от вашей системы. В худшем случае вам придется перекомпилировать PHP с нуля.
Показать ещё 2 комментария
1

Эта помощь для меня (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

Это работает для меня.

0

Если компиляция из источника с помощью --disable-all, то поддержка DOMDocument может быть включена с помощью --enable-dom

Пример:

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

Протестировано и работает для Centos7 и PHP7

0

Для Centos 7 и php 7.1:
yum install php71w-xml
apachectl restart

0

В Fedora 26:

dnf install php-dom

Исправлено!

0

Использование Suse Linux (Linux linux 3.16.7-48 по умолчанию) и PHP 5.6.1 с правами root, это помогло:

zypper in php5-dom

плюс перезагрузка

systemctl restart apache2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню