情况说明
在编译安装PHP时,某些模块可能未被预先编译。在需要时,可以选择性编译特定模块。
编译安装前的准备
确保已安装autoconf工具,以支持PHP的自动生成配置文件。
[root@localhost ftp]# /usr/local/php5/bin/phpize Configuration failed for /usr/local/php5/bin/phpize PHP Version: 20131106 Zend Module Api Version: 20131226 Zend Extension Api Version: 220131226 autoconf not found. Please check if autoconf is installed and set the PHP_AUTOCONF environment variable. Then, rerun this script.
安装autoconf工具:
[root@localhost ftp]# yum install -y autoconf
安装范例
以Redis为例,作为PHP应用的缓存模块进行编译安装。
下载并安装Redis扩展包:
[root@localhost src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop [root@localhost src]# mv develop phpredis-develop.zip [root@localhost src]# unzip phpredis-develop.zip
生成配置文件(前提已安装autoconf):
[root@localhost phpredis-develop]# yum install -y autoconf [root@localhost phpredis-develop]# /usr/local/php7/bin/phpize Configuration for PHP 7.2.8 ...
编译并安装:
[root@localhost phpredis-develop]# ./configure --with-php-config=/usr/local/php7/bin/php-config [root@localhost phpredis-develop]# make [root@localhost phpredis-develop]# make install
查看扩展目录:
[root@localhost phpredis-develop]# /usr/local/php7/bin/php -i | grep extension_dir extension_dir => /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
修改PHP配置文件php.ini:
[root@localhost phpredis-develop]# vi /usr/local/php7/etc/php.ini 添加:extension=redis.so
验证安装:
[root@localhost phpredis-develop]# /usr/local/php7/bin/php -m | grep redis Redis
额外说明
大多数PHP模块均可通过上述方法安装。注意:
mysqli模块安装时,需指定mysql_config文件:
[root@localhost mysqli]# ./configure --with-php-config=/usr/local/php5/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config