编译httpd时,有涉及动态和静态模块,PHP也一样有静态与动态之分,之前所涉及到的PHP安装都全部为静态,并没有任何动态的模块,所谓动态,就是一个独立存在的.so文件,在httpd中PHP就是以动态模块的形式被加载的。PHP一旦编译完成后,要想再增加一个功能的话,要么重新编译PHP,要么直接编译一个扩展模块(生成一个.so文件),然后在php.ini中配置一下,就可以被加载使用了。
1、查看PHP加载的模块
[root@zlinux ~]# /usr/local/php/bin/php -m[PHP Modules]bz2CorectypedatedomeregexiffileinfofiltergdhashiconvjsonlibxmlmbstringmcryptmysqlmysqliopensslpcrePDOpdo_mysqlpdo_sqlitePharposixReflectionsessionSimpleXMLsoapsocketsSPLsqlite3standardtokenizerxmlxmlreaderxmlwriterzlib[Zend Modules]
2、安装一个PHP扩展模块(redis模块)
[root@zlinux ~]# cd /usr/local/src/[root@zlinux src]# wget https://codeload.github.com/phpredis/phpredis/zip/develop[root@zlinux src]# mv develop phpredis-develop.zip[root@zlinux src]# unzip phpredis-develop.zip [root@zlinux src]# cd phpredis-develop/[root@zlinux phpredis-develop]# /usr/local/php/bin/phpize ?????//目的是生成configure文件Configuring for:PHP Api Version: ????????20131106Zend Module Api No: ?????20131226Zend Extension Api No: ??220131226Cannot find autoconf. Please check your autoconf installation and the$PHP_AUTOCONF environment variable. Then, rerun this script.//报错Cannot find autoconf,需要安装一些autoconf[root@zlinux phpredis-develop]# yum install -y autoconf[root@zlinux phpredis-develop]# /usr/local/php/bin/phpize Configuring for:PHP Api Version: ????????20131106Zend Module Api No: ?????20131226Zend Extension Api No: ??220131226[root@zlinux phpredis-develop]# ./configure --with-php-config=/usr/local/php/bin/php-config[root@zlinux phpredis-develop]# make[root@zlinux phpredis-develop]# make installInstalling shared extensions: ????/usr/local/php/lib/php/extensions/no-debug-zts-20131226///make install会把编译好的redis放到这个目录下,该目录为扩展模块存放目录[root@zlinux phpredis-develop]# /usr/local/php/bin/php -i | grep -i extension_dirextension_dir => /usr/local/php/lib/php/extensions/no-debug-zts-20131226 => /usr/local/php/lib/php/extensions/no-debug-zts-20131226sqlite3.extension_dir => no value => no value//查看扩展模块目录,也可以在php.ini中修改目录[root@zlinux phpredis-develop]# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/opcache.so ?redis.so
3、修改PHP配置文件,使扩展模块生效
[root@zlinux phpredis-develop]# vim /usr/local/php/etc/php.ini ???//添加以下内容extension = redis.so[root@zlinux phpredis-develop]# /usr/local/php/bin/php -m | grep redis ???//查看是否加载了redisredis
PHP动态扩展模块安装
原文地址:http://blog.51cto.com/3069201/2084294