从源码编译PHP7.4时如何启用DOMDocument扩展
问题解决办法
根因说明
使用--disable-all参数会禁用PHP所有默认启用的扩展,DOM扩展是独立于libxml的独立模块,仅添加--with-libxml只是满足DOM的依赖前提,并不会自动启用DOM扩展。此外仅安装libxml2运行库不足以编译DOM扩展,还需要安装对应开发头文件包。
修复步骤
- 安装缺失的依赖开发包
yum install -y libxml2-devel
- 修改编译配置参数,在
./configure指令中添加--enable-dom显式开启DOM扩展,修改后的完整编译流程如下:
yum install autoconf bison re2c libxml2 libxml2-devel 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 --enable-dom && \ make clean && \ make -j $(nproc) && \ rm -rfv ../php && \ cp -v ./sapi/cli/php ../php
- 验证生效情况,执行以下命令返回
bool(true)即为配置成功:
./php -r "var_dump(class_exists('DOMDocument'));"
可选补充
如果需要其他XML相关功能,可在configure参数中额外添加对应扩展开启参数,例如--enable-simplexml、--enable-xmlreader、--enable-xmlwriter等。
内容的提问来源于stack exchange,提问作者hanshenrik
相关产品推荐
相关产品推荐

