我需要在不重新编译php的情况下升级libxml库。已尝试以下步骤:
- 从
ftp://xmlsoft.org/libxml2/
下载所需版本(.tar.gz文件( - 解压缩
.tar.gz
文件和"cd"命令以输入该文件夹(例如:libxml2-2.9.5( -
然后执行以下命令
./configure make sudo make install
所有成功,但php -I | grep libxml
仍然只显示旧版本。请帮忙。
你在库和 PHP 扩展之间混合,PHP 扩展只是库能够在你的 PHP 代码中使用它的包装器。
所以编译一个库并不意味着你可以把它用作PHP的扩展,你仍然需要从扩展编译一个新版本,并将新版本的库与它一起使用。
要将扩展升级到特定的库版本,通常需要从源代码编译它,libxml 的问题在于它默认与 PHP 捆绑在一起。
可选的 --with-libxml-dir 指令用于指定 libxml 在编译 PHP 的系统上的位置, 否则,仅扫描默认位置。
因此,您可能需要从源代码重新编译一个新的PHP版本,并将新版本libxml的新编译bin传递给它,就像手册中提到的一样:
./configure .... --with-libxml-dir=/path/to/libxml
与其重新编译新版本的 PHP 并丢失所有当前的扩展配置,不如尝试仅从源代码重新编译 xml 扩展并覆盖当前扩展,如下所示:
克隆新版本的 PHP:
git clone git@github.com:php/php-src.git
cd php-src/ext/libxml
git checkout YOUR_INSTALLED_PHP_VERSION
phpize
./configure --with-libxml-dir=/path/to/libxml
make
make install