No se encontró la clase 'DOMDocument'


210

Encontré un error en una página de mi aplicación Magento; siempre muestra este mensaje de error cuando lo visito:

Error fatal: la clase 'DOMDocument' no se encuentra en /home/.../lib/Zend/Feed/Abstract.php en la línea 95

¿Me puede dar una solución? Estoy usando magento 1.4.1.1.


1
Esta respuesta (habilitar php-xml) parece coherente, ¿por qué dudarlo en lugar de solo probarlo? Según algunas búsquedas en Google, parece ser uno de los posibles problemas
koopajah

1
me asusto cuando intento "yum install php-xml", perturbará mi sitio de magento ..
ws_123

DomDocumenten lugar de a DOMDocumentveces puede solucionar este problema.
Jirarium

Respuestas:


300

Necesita instalar la extensión DOM . Puede hacerlo en Debian / Ubuntu usando:

sudo apt-get install php-dom

Y en Centos / Fedora / Red Hat:

yum install php-xml

Si tiene conflictos entre los paquetes PHP 5 y PHP 5.3, podría intentar ver si el php53-xmlpaquete existe en su lugar.


32
la instalación de php-xml me resolvió esto, pero no olvides el 'servicio httpd restart'
zzapper

2
@zzapper gracias, eso me puso en los rieles! En mi caso, necesitaba reiniciar apache2 service apache2 restart.
Shautieh

2
recuerde reiniciar apache después
Jahmic

55
Para PHP7, es justo php-doc.
Jared

10
Para mí:sudo apt-get install php7.1-xml
Rafael Barros

161

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
recuerde reiniciar apache después
Jahmic

Estoy ejecutando PHP 7 (7.0.15-1 ~ dotdeb + 8.1) en un Nginx VS (a través de Docker) y ¡esto funcionó de maravilla! ¡No te olvides de hacer 'docker-compose restart'!
StephanieQ

1
PHP 7.2, CentOS yum install php72w-xmly luego reiniciar el servicio
Silvan

¿No hay un php-xmlalias / paquete virtual?
binki

Esto también está comenzando a ocurrir con la transición de php7.3 a 7.4. Cuando el módulo PHP del servidor web está basado en 7.3 y php-xml es 7.4. La actualización a una versión PHP consistente (cualquiera de las dos) funciona bien.
Amos Jeffries

26

PHP7: la última versión:

sudo apt-get install php7.1-xml

también puedes hacer:

sudo apt-get install php-dom

y apt-get te mostrará dónde está


6

Estoy usando Centos y lo siguiente funcionó para mí, ejecuto este comando

yum --enablerepo remi install php-xml

Y reinició el Apache con este comando

sudo service httpd restart

3
Gracias, reiniciar el servidor funcionó! Tuve que hacer service apache2 restarten 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.

En caso de que alguien use las versiones 5.6, siga este camino

sudo apt-get install php5.6-xml

Para Php Ver PHP7, Ubuntu:

sudo apt-get install php7.1-xml

o por

yum install php-xml

4

Cree un archivo PHP vacío y colóquelo solo <?php phpinfo();en él, mírelo en un navegador.
Comprueba si puedes detectar--disable-dom las opciones de configuración y / o si puede ver detalles sobre la extensión DOM en la lista a continuación.

Si no puede ver DOM en la lista o ve que está deshabilitado, su instalación de PHP no incluye la extensión DOM. Deberá volver a compilar su instalación de PHP desde el origen para remediar eso.


encontré --disable-dom en Configure Command, ¿qué debo hacer a continuación?
ws_123

Eso depende de tu sistema. En el peor de los casos, debe volver a compilar PHP desde cero.
deceze

Con frecuencia, confiar en la opción de configuración es un error, lea blog.remirepo.net/post/2010/09/29/phpinfo-BUG-or-PEBKAC, por lo que se ha eliminado de la salida de phpinfo en alguna distrobution (debian, fedora ... )
Remi Collet

1
Si se compila desde la fuente, puede usar--enable-dom
DidThis

3

Esta ayuda para mí (Ubuntu Linux) PHP 5.6.3

sudo apt-get install php5.6-dom

Eso es trabajo para mi.


1

Usando Suse Linux (Linux linux 3.16.7-48-default) y PHP 5.6.1 como root, esto ayudó:

zypper in php5-dom

más reiniciar

systemctl restart apache2

1

En fedora 26:

dnf install php-dom

Lo arregla!


1

Para Centos 7 y php 7.1:
yum instale php71w-xml
apachectl restart


1

Si compila desde la fuente con, --disable-allentonces, el soporte DOMDocument puede habilitarse
--enable-dom

Ejemplo:

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

Probado y funcionando para Centos7 y PHP7


1

Estoy usando CentOS 7 con virtualmin y tres versiones de PHP. También tengo REMI repo habilitado. me funcionó:

Paso 1:

Simplemente agregue el número de versión principal de PHP como este php{version number}-xml. Y correryum install

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

Paso 2:

No olvides reiniciar Apache:

service httpd restart

0

Si está utilizando PHP7.0 para instalar Magento, sugiero instalar todas las extensiones con 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

Necesito Google algunas veces para cumplir con los requisitos de Magento.

Creo que puede reemplazar la versión de PHP a 7.x si usa otra versión de PHP

Y reiniciar Apache es necesario para cargar nuevas extensiones

sudo service apache2 restart

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.