摘要:背景安裝完之后,需要安裝擴展,才能讓操作本機有多個版本,安裝過程中遇到的坑分享一下。四問題修復已修復,但是原因可能不太準確編譯報錯最初以為是多個版本生成問題,采用指定版本,指定位置。
一 下載背景:安裝完redis之后,需要安裝phpredis擴展,才能讓php操作redis;本機有多個php版本,安裝過程中遇到的坑分享一下。
git上下載redis的擴展包
git clone https://github.com/nicolasff/phpredis二 掛載和configure
在shell中輸入 phpize 【注意:多個php版本的時候需要指定】
./configure
【phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊】
注意:(phpize 如果包含多個php,必須指定位置)
cuihuan:phpredis cuixiaohuan$ ../php/bin/phpize Configuring for: PHP Api Version: 20121113 Zend Module Api No: 20121212 Zend Extension Api No: 220121212 Cannot 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]$ ../php/bin/phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 [work@cuixiaozhuai phpredis]$ ./configure --with-php-config=/home/work/thirdparty/php5/bin/php-config
當存在多個版本的php的時候,需要指定配置文件
./configure --with-php-config=/home/work/thirdparty/php5/bin/php-config三 編譯和安裝
make 之后最好make test
make install
cuihuan:phpredis cuixiaohuan$ make 。。。 Build complete. Don"t forget to run "make test". cuihuan:phpredis cuixiaohuan$ make test cuihuan:phpredis cuixiaohuan$ make install四 問題修復
【已修復,但是原因可能不太準確】
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 here collect2: ld returned 1 exit status make: *** [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 */五 簡單測試
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");
個人小站原文鏈接
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/21146.html
摘要:在網上找到很多的安裝操作都是在下編譯安裝,沒有下可執行文件,找到個別的可執行文件在我的環境下還不能安裝,最后也不知道從哪里下來的擴展文件終于給整好了。好啦到此擴展安裝結束。 最近項目中需要用到redis,之前接觸redis比較少,所以對redis的了解也還只是停留在當時學習階段。于是乎,網上搜了一下,各種google,也請教了同事。花了好長一個上午時間才給整出來。在網上找到很多的安裝操...
摘要:下安裝以及使用一安裝檢查是否有源下載的倉庫安裝數據庫安裝完畢后,使用下面的命令啟動服務啟動停止查看運行狀態查看進程設置為開機自動啟動進入服務進入本機列出所有防火墻開放相應端口開啟開啟保存下執行二修改默認端口和密碼打 CentOS7 linux下yum安裝redis以及使用 一、安裝redis1、檢查是否有redis yum 源yum install redis 2、下載fedora的e...
閱讀 2761·2021-09-24 10:34
閱讀 1862·2021-09-22 10:02
閱讀 2252·2021-09-09 09:33
閱讀 1458·2021-08-13 15:02
閱讀 3270·2020-12-03 17:10
閱讀 1180·2019-08-30 15:44
閱讀 2144·2019-08-30 12:58
閱讀 3229·2019-08-26 13:40