一 下载:git上下载redis的扩展包git clone https://github.com/nicolasff/phpredis
二 挂载:在shell中输入 phpize 【查看适合的版本信息】 ./configure 编译
【phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块】
注意:(phpize 如果包含多个php,必须指定位置)
cuihuan:phpredis cuixiaohuan$ phpizeconfiguring for:php api version: 20121113zend module api no: 20121212zend extension api no: 220121212cannot find autoconf. please check your autoconf installation and the$php_autoconf environment variable. then, rerun this script.
报错的话需要安装:brew install autoconf [phpize 报错] 否则没有phpize
[work@cuixiaozhuai phpredis]$ phpize configuring for:php api version: 20041225zend module api no: 20060613zend extension api no: 220060519[work@cuixiaozhuai phpredis]$ ./configure
当存在多个版本的php的时候,需要指定配置文件
./configure --with-php-config=/home/work/thirdparty/php5/bin/php-config
三 安装: make 之后make test 最好 make installbuild complete.don't forget to run 'make test'.cuihuan:phpredis cuixiaohuan$ make test
四 问题报错修复:【已修复,但是原因可能不太准确】make编译报错
.libs/redis_cluster.o(.data.rel.local+0x0): in function `ht_free_seed':/home/work/thirdparty/php5/php5/phpredis/redis_cluster.c:226: multiple definition of `arginfo_scan'.libs/redis.o(.data.rel.local+0xe0):/home/work/thirdparty/php5/php5/p hpredis/redis.c:452: first defined here/usr/bin/ld: warning: size of symbol `arginfo_scan' changed from 160 in .libs/redis.o to 200 in .libs/redis_cluster.o.libs/redis_cluster.o(.data.rel.local+0xe0): in function `create_cluster_context':/home/work/thirdparty/php5/php5/phpredis/redis_cluster.c:276: multiple definition of `arginfo_kscan'.libs/redis.o(.data.rel.local+0x0):/home/work/thirdparty/php5/php5/phpredis/redis.c:364: first defined herecollect2: ld returned 1 exit statusmake: *** [redis.la] error 1
最初以为是php多个版本生成install问题,采用./configure 指定php版本,指定php位置。
但是效果还是有问题。
最终通过修改redis_cluester.c 中,注释掉了这两个重复的
40 41 /* argument info for hscan, sscan, hscan */ 42 /*zend_begin_arg_info_ex(arginfo_kscan, 0, 0, 2) 43 zend_arg_info(0, str_key) 44 zend_arg_info(1, i_iterator) 45 zend_arg_info(0, str_pattern) 46 zend_arg_info(0, i_count) 47 zend_end_arg_info(); 48 */ 49 50 /* argument infor for scan */ 51 /* 52 zend_begin_arg_info_ex(arginfo_scan, 0, 0, 2) 53 zend_arg_info(1, i_iterator) 54 zend_arg_info(0, str_node) 55 zend_arg_info(0, str_pattern) 56 zend_arg_info(0, i_count) 57 zend_end_arg_info(); 58 */
五 进行简单的php操作测试connect('127.0.0.1',6379); echo redis pass and status show; var_dump($redis->ping()); $redis->set('test_key','test_value'); echo test set val=.$redis->get('test_key').; $redis->setnx('unique_key',unique_val); $redis->setnx('unique_key',unique_val_2); echo $redis->get(unique_key); sleep(60); echo 'is exist'.$redis->exists('test_60s'); echo 'not has value'.$redis->get('test_60s'); $redis->delete('test_key','test_60s');
回复内容: 一 下载:git上下载redis的扩展包git clone https://github.com/nicolasff/phpredis
二 挂载:在shell中输入 phpize 【查看适合的版本信息】 ./configure 编译
【phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块】
注意:(phpize 如果包含多个php,必须指定位置)
cuihuan:phpredis cuixiaohuan$ phpizeconfiguring for:php api version: 20121113zend module api no: 20121212zend extension api no: 220121212cannot find autoconf. please check your autoconf installation and the$php_autoconf environment variable. then, rerun this script.
报错的话需要安装:brew install autoconf [phpize 报错] 否则没有phpize
[work@cuixiaozhuai phpredis]$ phpize configuring for:php api version: 20041225zend module api no: 20060613zend extension api no: 220060519[work@cuixiaozhuai phpredis]$ ./configure
当存在多个版本的php的时候,需要指定配置文件
./configure --with-php-config=/home/work/thirdparty/php5/bin/php-config
三 安装: make 之后make test 最好 make installbuild complete.don't forget to run 'make test'.cuihuan:phpredis cuixiaohuan$ make test
四 问题报错修复:【已修复,但是原因可能不太准确】make编译报错
.libs/redis_cluster.o(.data.rel.local+0x0): in function `ht_free_seed':/home/work/thirdparty/php5/php5/phpredis/redis_cluster.c:226: multiple definition of `arginfo_scan'.libs/redis.o(.data.rel.local+0xe0):/home/work/thirdparty/php5/php5/p hpredis/redis.c:452: first defined here/usr/bin/ld: warning: size of symbol `arginfo_scan' changed from 160 in .libs/redis.o to 200 in .libs/redis_cluster.o.libs/redis_cluster.o(.data.rel.local+0xe0): in function `create_cluster_context':/home/work/thirdparty/php5/php5/phpredis/redis_cluster.c:276: multiple definition of `arginfo_kscan'.libs/redis.o(.data.rel.local+0x0):/home/work/thirdparty/php5/php5/phpredis/redis.c:364: first defined herecollect2: ld returned 1 exit statusmake: *** [redis.la] error 1
最初以为是php多个版本生成install问题,采用./configure 指定php版本,指定php位置。
但是效果还是有问题。
最终通过修改redis_cluester.c 中,注释掉了这两个重复的
40 41 /* argument info for hscan, sscan, hscan */ 42 /*zend_begin_arg_info_ex(arginfo_kscan, 0, 0, 2) 43 zend_arg_info(0, str_key) 44 zend_arg_info(1, i_iterator) 45 zend_arg_info(0, str_pattern) 46 zend_arg_info(0, i_count) 47 zend_end_arg_info(); 48 */ 49 50 /* argument infor for scan */ 51 /* 52 zend_begin_arg_info_ex(arginfo_scan, 0, 0, 2) 53 zend_arg_info(1, i_iterator) 54 zend_arg_info(0, str_node) 55 zend_arg_info(0, str_pattern) 56 zend_arg_info(0, i_count) 57 zend_end_arg_info(); 58 */
五 进行简单的php操作测试connect('127.0.0.1',6379); echo redis pass and status show; var_dump($redis->ping()); $redis->set('test_key','test_value'); echo test set val=.$redis->get('test_key').; $redis->setnx('unique_key',unique_val); $redis->setnx('unique_key',unique_val_2); echo $redis->get(unique_key); sleep(60); echo 'is exist'.$redis->exists('test_60s'); echo 'not has value'.$redis->get('test_60s'); $redis->delete('test_key','test_60s');