es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtener DOMDocument al compilar PHP 7.4 desde el origen?

¿Cómo obtengo DOMDocument al compilar php7.4 desde la fuente? Estoy en Amazon Linux 2 y estoy compilando php7.4 de esta manera:

yum install autoconf bison re2c libxml2 gcc && \
rm -rf php-src && \
git clone -b 'PHP-7.4' --depth 1 https://github.com/php/php-src.git && \
cd 'php-src' && \
./buildconf && \
./configure --disable-all --disable-cgi --enable-cli --with-curl --with-libxml && \
make clean && \
make -j $(nproc) && \
rm -rfv ../php && \
cp -v ./sapi/cli/php ../php

y para mi sorpresa, el binario php-cli resultante no tiene disponible DOMDocument:

[root@ip-192-168-84-98 php]# ./php test.php

Fatal error: Uncaught Error: Class 'DOMDocument' not found in /hans_temp/php/test.php:558
Stack trace:
0 /hans<em>temp/php/test.php(573): get</em>gps<em>coordiates</em>from<em>finn</em>id('237587045')
1 {main}
thrown in /hans<em>temp/php/test.php on line 558

Pensé que –with-libxml debía agregar DOMDocument, pero aquí no lo hace… puedo teorizar que hay un error entre las banderas –disable-all y –with-libxml – o – que me falta algo para el soporte de DOMDocument, ¿ayuda? (por lo que vale, el –with-curl funciona muy bien, agregando la api de curl)

config.log: https://termbin.com/18i8 (demasiado grande para integrar en stackoverflow.com)

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener DOMDocument al compilar PHP 7.4 desde la fuente en Amazon Linux 2, debe agregar la bandera --with-dom al comando ./configure. Esta bandera habilita la extensión DOM, que proporciona soporte para DOMDocument.

    Entonces, el comando ./configure actualizado se vería así:

    ./configure --disable-all --disable-cgi --enable-cli --with-curl --with-libxml --with-dom
    

    Después de agregar esta bandera, reconstruya e instale PHP siguiendo los mismos pasos que ya ha seguido. Esto debería hacer que DOMDocument esté disponible en el binario resultante de PHP.

    Si el problema persiste, es posible que desee verificar el archivo config.log en busca de errores relacionados con la extensión DOM.

Comments are closed.