有时候我们需要让php支持其他的一些模块,所以需要我们可以重新编译php,编译之前加上模块的配置参数,也可以直接编译出来一个单独的模块,我倾向于后者,不要重新安装php,比较方便。
首先,明确一下这次安装的模块是Memcached模块
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据
库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、
数据库驱动网站的速度
1. 下载memcache源码包
php的扩展模块一般都放在/usr/local/php/ext/文件夹下,但是我们安装好以后,好像都没有,所以我们首先创建文件夹
mkdir /usr/local/php/ext
cd /usr/local/php/ext
下载源码包
wget http://pecl.php.net/get/memcache-2.2.3.tgz
下面这一步的作用是借助php的phpize工具生成configure文件
/usr/local/php/bin/phpize
这一步是借助 php 的 phpize 工具生成 configure 文件。在这一步你可能会遇到一些错误,比如“Cannot find config.m4”,这是因为系统没有安装 m4 工具,使用 yum 安装 yum install -y m4。另外一个错误“Cannot find autoconf”,解决办法是, yum install -y autoconf。
2. 然后执行编译配置、编译、安装
在/usr/local/php/ext中执行
./configure && make && make install
然后我发现,在当前目录下生成了一个目录名叫modules,里面生成了一个文件memcache.so
然后我们去看一下php的extension_dir的位置,我们就是要将模块放在这个文件夹下
查看extension_dir的位置
/usr/local/php/bin/php -i | grep extension_dir
我看到的是以下配置
extension_dir => /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226
所以我cd到相应的目录,查看了一下,里面竟然也生成了memcache.so模块,这样我们就不用移动模块了。但是要修改php.ini的配置
vim /usr/local/php/etc/php.ini
在大概889行的位置添加配置如下,但是记得要去掉前面的;注释符
extension = memcache.so
3. 测试
/usr/local/php/bin/php -m
可以看到列出的模块中有memcache模块
4. 补充
当然,我们也能更改extension_dir的目录位置
vim /usr/local/php/etc/php.ini
在大概736行的位置,设置extension_dir=.......
保存后退出即可