Memcached 笔记与总结(2)编译 php-memcache 扩展
环境:CentOS 6.6 + Apache 2.2.21 + PHP 5.3.10
php-memcache 是 php 写的 memcached 的客户端,以扩展的形式发布。
对于正在运行的 php,不可能去整体重新编译 php,只能编译扩展。
php 扩展编译(的 通用 方法,以 memcached 扩展为例)
① 到软件的官方网站,如 memcached 的官网,或 pecl.php.net 寻找扩展源码并下载,以 pecl.php.net 为例,搜索 memcached
以 memcache 为例,下载其稳定版 2.2.7:http://pecl.php.net/get/memcache-2.2.7.tgz,使用 wget 命令下载或者 ftp 上传到 /usr/local/src 目录下;
② 解压
[root@localhost src]# tar zxvf memcache-2.2.7.tgz
③ 进入解压后的目录
[root@localhost src]# cd memcache-2.2.7
④ 编译 php 扩展
此时在 memcache-2.2.7 目录下并没有configure 文件。
因为该软件编译的参数具体依赖于当前的 php 环境,所以首先需要根据 php 的版本动态地创建扩展的 configure 文件。
[root@localhost memcache-2.2.7]# /usr/local/php/bin/phpize --with-php-config=/usr/local/php/bin/php-config
此时再查看该目录,已经有了 configure 文件:
⑤ 配置
[root@localhost memcache-2.2.7]# ./configure --with-php-config=/usr/local/php/bin/php-config
⑥ 编译 && 安装
[root@localhost memcache-2.2.7]# make && make install
生成的 .so 文件放在了如上图所示的目录中,查看该目录:
⑦ 把生成的 .so 扩展,在 php.ini 中引入
通过测试文件打印出 phpinfo,查看 php.ini 的路径:
编辑 php.ini:
[root@localhost memcache-2.2.7]# vim /usr/local/php/lib/php.ini
在 line 800 左右加上:extension_dir 和 extension(redis.so 和 extension_dir 是以前就加入的):
保存退出。
重启 apache:
[root@localhost memcache-2.2.7]# /usr/local/apache2/bin/apachectl restart
此时在查看 phpinfo:
或者在 linux 下输入命令:
php -m | grep memcached