как получить DOMDocument при компиляции PHP7.4 из исходного кода?

#php #compilation #domdocument #php-7.4

#php #Сборник #domdocument #php-7.4

Вопрос:

как получить DOMDocument при компиляции php7.4 из исходного кода? я на Amazon Linux 2 и компилирую php7.4 следующим образом:

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

и, к моему удивлению, в результирующем двоичном файле php-cli отсутствует 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_temp/php/test.php(573): get_gps_coordiates_from_finn_id('237587045')
#1 {main}
  thrown in /hans_temp/php/test.php on line 558
 

я думал, что —with-libxml должен был добавить DOMDocument , но здесь это не так… я могу предположить, что между флагами есть ошибка --disable-all и --with-libxml -или- что я чего-то не хватает для поддержки DOMDocument, помогите? (fwiw --with-curl отлично работает, добавляя curl_ * api)

config.log: https://termbin.com/18i8 (слишком большой, чтобы встроить его stackoverflow.com )

Ответ №1:

при компиляции с помощью —disable-all вам нужны оба --with-libxml и --enable-dom для того, чтобы DOMDocument был доступен.

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