#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