Classe 'DOMDocument' não encontrada


209

Encontrei um erro em uma página no meu aplicativo Magento; ele sempre mostra esse erro de mensagem quando o visito:

Erro fatal: Classe 'DOMDocument' não encontrada em /home/.../lib/Zend/Feed/Abstract.php na linha 95

Você pode me dar uma solução? Estou usando o magento 1.4.1.1.


1
Esta resposta (ativar php-xml) parece coerente, por que duvidar em vez de apenas testá-lo? De algumas pesquisas do Google parece ser uma das questões possíveis
koopajah

1
Eu só susto quando eu tento "yum install php-xml", que vai perturbar o meu site magento ..
ws_123

DomDocumentem vez de, DOMDocumentàs vezes, pode corrigir esse problema.
Jirarium

Respostas:


300

Você precisa instalar a extensão DOM . Você pode fazer isso no Debian / Ubuntu usando:

sudo apt-get install php-dom

E no Centos / Fedora / Red Hat:

yum install php-xml

Se você tiver conflitos entre os pacotes PHP 5 e PHP 5.3, tente verificar se o php53-xmlpacote existe.


31
instalar php-xml resolvido isso por mim, mas não se esqueça do 'serviço httpd restart'
ZZAPPER

2
Obrigado @zzapper, que me colocou nos trilhos! No meu caso, eu precisava reiniciar o apache2 service apache2 restart.
Shautieh 28/10

2
lembre-se de reiniciar o apache posteriormente
Jahmic 29/10

5
Para o PHP7, é apenas php-doc.
Jared

9
Para mim: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
lembre-se de reiniciar o apache posteriormente
Jahmic 29/10

Estou executando o PHP 7 (7.0.15-1 ~ dotdeb + 8.1) em um Nginx VS (via Docker) e isso funcionou como um encanto! Não esqueça de fazer o `docker-compose restart '!
Stephanie.

1
PHP 7.2, CentOS yum install php72w-xmle depois reiniciar o serviço
Silvan

Não existe um php-xmlalias / pacote virtual?
binki

Isso também está começando a ocorrer com a transição do php7.3 para 7.4. Quando o módulo PHP do servidor web é baseado em 7.3 e php-xml é 7.4. A atualização para uma versão consistente do PHP (qualquer uma) funciona bem.
Amos Jeffries

26

PHP7: a versão mais recente:

sudo apt-get install php7.1-xml

você também pode fazer:

sudo apt-get install php-dom

e o apt-get mostrará onde está


6

Estou usando Centos e os seguintes funcionaram para mim, eu executo este comando

yum --enablerepo remi install php-xml

E reiniciou o Apache com este comando

sudo service httpd restart

3
Obrigado, reiniciar o servidor funcionou! Eu tive que fazer service apache2 restartno 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.

No caso de alguém usando a versão 5.6, siga este caminho

sudo apt-get install php5.6-xml

Para Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

ou pela

yum install php-xml

4

Crie um arquivo PHP vazio e coloque apenas <?php phpinfo();nele, veja-o em um navegador.
Verifique se você consegue identificar--disable-dom as opções de configuração e / ou se consegue ver detalhes sobre a extensão DOM na lista abaixo.

Se você não pode ver o DOM na lista ou vê-o desativado, sua instalação do PHP não inclui a extensão do DOM. Você precisará recompilar sua instalação do PHP da fonte para remediá-la.


Encontrei --disable-dom no comando Configure, o que devo fazer em seguida?
ws_123

Isso depende do seu sistema. Na pior das hipóteses, você precisa recompilar o PHP do zero.
deceze

Baseando-se na opção de configuração é mais freqüentemente um erro, leia blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC por isso foram removidos saída phpinfo em algum distrobution (Debian, Fedora ... )
Remi Collet

1
Se compilado a partir do código, você poderia usar--enable-dom
DidThis

3

Esta ajuda para mim (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

Isso funciona para mim.


1

Usando o Suse Linux (Linux linux 3.16.7-48-default) e o PHP 5.6.1 como root, isso ajudou:

zypper in php5-dom

além de reiniciar

systemctl restart apache2

1

No fedora 26:

dnf install php-dom

Corrige isso!


1

Para Centos 7 e php 7.1:
yum, instale o php71w-xml
apachectl restart


1

Se a compilação da fonte com o --disable-allsuporte ao DOMDocument puder ser ativada com
--enable-dom

Exemplo:

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

Testado e funcionando para Centos7 e PHP7


1

Estou usando o CentOS 7 com virtualmin e três versões do PHP. Também tenho o REMI repo ativado. funcionou para mim:

Passo 1:

Basta acrescentar o número da versão principal do PHP como este php{version number}-xml. E corrayum install

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

Passo 2:

Não se esqueça de reiniciar o Apache:

service httpd restart

0

Se você estiver usando o PHP7.0 para instalar o Magento, sugiro instalar todas as extensões por este comando

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

Eu preciso do Google algumas vezes para atender aos requisitos do Magento.

Eu acho que você pode substituir a versão do PHP para 7.x se você usar outra versão do PHP

E reinicie o Apache é necessário para carregar novas extensões

sudo service apache2 restart

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.