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.

ws_123
fuente
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.

Decano
fuente
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
Limon Monte
fuente
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á

Albert s
fuente
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
ikuchris
fuente
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
inrsaurabh
fuente
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.

difunto
fuente
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.

Augusto Duncan
fuente
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
Zartag
fuente
1

En fedora 26:

dnf install php-dom

Lo arregla!

B2F
fuente
1

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

Ari
fuente
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

Hice esto
fuente
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
Imtiaz
fuente
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

vanduc1102
fuente