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 源码包
1 | [root@localhost src] # wget http://www.lishiming.net/data/attachment/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 说明配置成功。