当PHP安装完成后,如果想再增加一个模块,此时又不能重新编译php,我们只能以扩展模块的形式,给它编译出一个.so文件以动态调用,本次我们以安装一个redis模块为例,redis是一个NoSql,使用比较广泛,通常在LAMP这种架构下,会把它当成缓存来使用。
1、切换目录
# cd /usr/local/src/
2、下载redis包
# wget https://codeload.github.com/phpredis/phpredis/zip/develop
另一种情况:redis、mongo这类是属于第三方的,在php的源码包里面是没有这类模块的,实际上在/usr/local/src/php-5.6.30/ext/目录下有很多的模块,如果我们想要安装的模块在这个目录下,就不用下载,可以直接跳到第五步开始执行。如果想要安装的模块在这个目录下没有,就需要去官网下载,或者r.aminglinux.com下
3、修改包名
# mv develop phpredis-develop.zip
4、解压
# unzip phpredis-develop.zip
5、进入解压后的文件夹目录下
# cd phpredis-develop
6、生成configure文件
此时redis目录下还没有configure文件,
因此需要使用phpize这个工具来生成configure文件
# /usr/local/php/bin/phpize
可以看到,上图提示错误,需要安装autoconf,安装成功后,再来重新生成configure文件,生成成功的界面如下图
此时我们来查看phpredis-develop目录下的文件,就可以看到configure文件了
7、配置
# ./configure --with-php-config=/usr/local/php/bin/php-config
一般情况下只需要使用--with-php-config这一个参数就可以了,成功截图如下:
8、编译
# make
# make install //会将生成的redis.so文件放到下图目录中去
9、查看扩展模块目录
完成上一步后,我们可以看到php还是没有支持redis扩展模块,如下
# /usr/local/php/bin/php -m |grep redis
筛选结果没有redis这个模块
我们也可以查看php扩展模块存放目录,用以下命令
# /usr/local/php/bin/php -i |grep -i extension_dir
这个扩展模块的存放目录也可以在php.ini中去自定义,默认是将所有编译出来的扩展模块放到此目录下
10、编辑配置文件
在配置文件/usr/local/php/etc/php.ini中加入以下内容:
extension=redis.so
这行内容可以放到文件末尾,也可以放到以下位置:
保存后,再来查看php已经加载的模块就能看到redis已经加载了