当已经安装编译了PHP,却发现少安装了一个模块,就可以使用扩展模块去编译。
查看模块:/usr/local/php/bin/php -m
示例安装一个redis模块:
# cd /usr/local/src
# wget https://codeload.github.com/phpredis/phpredis/zip/develop
# mv develop phpredis-develop.zip
# unzip phpredis-develop.zip
# cd phpredis-develop/
# /usr/local/php7/bin/phpize //为了生成configure文件
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303
Cannot find autoconf. Please check your autoconf installation and the 首次会报错说少了autoconf这个包
$PHP_AUTOCONF environment variable. Then, rerun this script.
# yum install -y autoconf
# /usr/local/php7/bin/phpize 此时就可以ls看到有configure这个文件了
# ./configure --with-php-config=/usr/local/php7/bin/php-config
一般情况下只需要加这个选项就可以了。
# make
# make install //会把redis.so的文件放到这个20160303目录下
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-zts-20160303/
此时redis模块还没有加载,需要配置一下:
# /usr/local/php7/bin/php -i |grep extension_dir //查看扩展模块存放目录,可在php.ini中自定义该路径。
# vim /usr/local/php7/etc/php.ini //增加一行配置,可放在最后一行
extension=redis.so
# /usr/local/php7/bin/php -m |grep redis //已经加载好了
redis
通常扩展模块会放到这个目录下/usr/local/php7/lib/php/extensions/
# cd /usr/local/src/php-7.1.6/ext
当你想编译一个扩展模块时,如果它自带的源码包里的ext目录下有这个模块的目录,那你就可以直接进这个模块的目录下去编译它。
进入目录,
然后/usr/local/php7/bin/phpize
再加一条# ./configure --with-php-config=/usr/local/php7/bin/php-config
再# make && make install
然后进/usr/local/php7/etc/php.ini增加一行extension=zip.so的配置就可以加载出来了。
扩展
apache rewrite教程 http://coffeelet.blog.163.com/blog/static/13515745320115842755199/http://www.cnblogs.com/top5/archive/2009/08/12/1544098.html
apache rewrite 出现死循环 http://ask.apelearn.com/question/1043
php错误日志级别参考 http://ask.apelearn.com/question/6973
php开启短标签 http://ask.apelearn.com/question/120
php.ini详解 http://legolas.blog.51cto.com/2682485/493917