为 PHP 7 编译安装 Redis 与 Memcached 扩展

由于 Redis 与 Memcached 缓存服务在 PHP 中比较常用,而现在对于 PHP 7 的这两种缓存扩展的安装方式又没有具体的安装过程,所以在本次重装服务器时特别将安装 Redis 与 Memcached 扩展的过程记录下来。

以下操作均需以 root 身份执行

Memcached 扩展

在安装 Memcached 扩展前,需要安装依赖库 libmemcached。

我们可以从 这里 找到最新的 libmemcached 源码包,将其下载下来。

wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz

下载好后,解压并编译安装

tar zxvf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure
make && make test
make install

安装好依赖库后,接下来正式安装 Memcached 扩展。

由于 PHP 官方没有正式发布 PHP 7 的 Memcached 扩展包,因此我们从 Github 上克隆 Memcached 扩展的项目。在此之前,如果还没有安装 git,那么你可能需要安装 git。

安装 git

apt-get install git

接下来从 Github 上克隆 Memcached 扩展的项目,需要注意的是要手动切换到 php7 分支,否则会报以下错误

fatal error : ext / standard / php_smart_str . h : No such file or directory
git clone https://github.com/php-memcached-dev/php-memcached.git
cd php-memcached
git checkout php7
phpize
./configure --disable-memcached-sasl
make && make test
make install

Redis 扩展

奇怪的是,Redis 的扩展官方也没有正式打包发布,但事实上它已经有适配 PHP 7 的版本。我们同样从 Github 上克隆下来,然后手动切换到 php7 分支。

git clone https://github.com/phpredis/phpredis.git
cd phpredis
git checkout php7
phpize
./configure
make
make install

在 PHP 7 中加载扩展

到现在为止,Memcached 扩展和 Redis 扩展已安装至系统中,但还未被 PHP 使用,因此需要编辑 PHP 的配置文件来加载扩展。

vim /etc/php/7.0/fpm/php.ini

在配置文件中添加如下语句

extension=memcached.so
extension=redis.so

保存文件并退出编辑器

最后重启 PHP 服务使配置生效

service php7.0-fpm restart

通过 phpinfo() 函数查看两个扩展是否安装成功。