php 和 apache 类似,核心文件为 /usr/local/php/bin/php,针对 apache 的是 /usr/local/apache2/modules/libphp5.so 模块。这两个文件是核心,在编译 php 时会让它提前支持一些功能,比如支持 mysql ,这个功能其实是 php 的一个模块,只不过这个模块是直接和 php 或 libphp5.so 文件编译在一起的。当编译完 php 后,发现还需要让 php 支持另外的模块,这时候可以重新编译 php,加上配置参数,或者直接编译出一个独立的模块文件,然后让 php 去调用它。下面编译 memcache :

        (1)下载 memcache 源码包

[root@localhost src]# wget http://www.lishiming.net/data/p_w_upload/forum/memcache-2.2.3.tgz

        (2)安装

[root@localhost src]# tar zxvf memcache-2.2.3.tgz
[root@localhost src]# cd memcache-2.2.3
[root@localhost memcache-2.2.3]# /usr/local/php/bin/phpize

         说明:这一步是借助 php 的 phpize 工具生成 configure 文件。在这一步可能会遇到一些错误:

Cannot find autoconf. Please check your autoconf installation and the

$PHP_AUTOCONF environment variable. Then, rerun this script.

[root@localhost memcache-2.2.3]# yum install -y autoconf

         还有 Cannot find config.m4 ,yum install -y m4。

         继续:

[root@localhost memcache-2.2.3]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@localhost memcache-2.2.3]# make
[root@localhost memcache-2.2.3]# echo $?
0
[root@localhost memcache-2.2.3]# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
[root@localhost memcache-2.2.3]# echo $?
0
[root@localhost memcache-2.2.3]# cp modules/memcache.so /usr/local/php/ext/

         说明:当 make install 后会生成一个 memcache.so 的模块文件,我们要用的就是它。然后把 memcache.so 拷贝至 php 的 extension_dir 下。查看 php extension_dir 的方法是“/usr/local/php/bin/php -i |grep extension_dir”,修改 extension_dir 的方法是,编辑 php.ini 文件,修改如下:

[root@localhost ~]# vim /usr/local/php/etc/php.ini
extension_dir = "/usr/local/php/ext"
extension=memcache.so

        保存后可以利用 “/usr/local/php/bin/php -m ”命令检测和查看具体的模块,如果有 memcache 说明配置成功。