环境如下:
安装步骤:
1.下载并解压缩redis-3.1.4.tgz:
# wget https://pecl.php.net/get/redis-3.1.4.tgz --no-check-certificate
# chmod 777 redis-3.1.4.tgz
# tar zxvf redis-3.1.4.tgz
2.进入解压缩之后的目录,进行安装:
# phpize
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
# ./configure
# make
# make install
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20131226/
3.修改php.ini文件,并重启php-fpm或者apache。本次使用的apache作为web服务器,所以重启httpd服务:
# vim /usr/local/lib/php.ini
增加如下内容:
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20131226"
extension=redis.so
最后,redis扩展已经成功安装:
注意事项:
注意php-redis扩展包需要和php版本兼容。如果php版本较旧,不要使用最新php-redis扩展包。本次安装redis-5.0.0.tgz的扩展包就失败了,make编译时,会报如下错误:
...
In file included from /usr/local/src/redis-5.0.0/redis.c:27:
/usr/local/src/redis-5.0.0/common.h:12:28: error: zend_smart_str.h: No such file or directory
/usr/local/src/redis-5.0.0/common.h:13:43: error: ext/standard/php_smart_string.h: No such file or directory
...
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘pipeline_cmd’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘pipeline_cmd’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘mode’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘mode’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘current’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘current’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘current’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘head’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘head’
/usr/local/src/redis-5.0.0/redis.c:1019: error: ‘RedisSock’ has no member named ‘current’
...