參考文章:http://blog.csdn.net/u013332865/article/details/49638923
首先說明:
所謂添加擴(kuò)展,分兩步:
- 編譯PHP源碼,生成 redis.so 擴(kuò)展文件,并將擴(kuò)展文件放在擴(kuò)展的文件夾下
- 修改php.ini, 即在php.ini 中添加一行:extensions = redis.so;
正式開始:
一、
- 下載 PHP (其他PHP版本下載)的源碼文件 ,然后解壓改名為php,然后放到applications/MAMP/bin/php/php5.3.5/include/ 下(include為新建文件夾)
(此處說明:我使用的PHP5.3.5 所以下載的5.3.5的源碼,但其實只要下載 5.3.X 對應(yīng)的版本號就行,最后一位版本號不影響使用)
- 在終端執(zhí)行
cd /Applications/MAMP/bin/php/php5.3.5/include/php
進(jìn)入上一步的php源碼路徑 - 執(zhí)行
./configure
進(jìn)行配置
說明:這一步是為了讓下一步編譯redis.so時,有對應(yīng)的php頭部文件。
- 下載redis
git clone https://github.com/nicolasff/phpredis.git
(一個名為 phpredis 的文件夾)
phpredis應(yīng)該是被下載到php的源碼文件夾下(即/Applications/MAMP/bin/php/php5.5.18/include/php下)
要編譯redis就要進(jìn)入redis的文件夾,執(zhí)行
cd phpredis
開始編譯,分別執(zhí)行以下3行代碼
/Applications/MAMP/bin/php/php5.3.5/bin/phpize
./configure --with-php-config=/Applications/MAMP/bin/php/php5.3.5/bin/php-config
make
執(zhí)行第一句可能出現(xiàn)以下問題:
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable is set correctly and then rerun this script.
說明:這是缺少 autoconf
解決辦法: 使用brew安裝
執(zhí)行brew install autoconf
編譯成功,會在phpredis/modules下生成了redis.so文件,則把這個redis.so 放到/Applications/MAMP/bin/php/php5.3.5/lib/php/extensions/no-debug-non-zts-20140712(最后這個文件夾的名字可能不一樣)下
修改php.ini,重啟MAMP。 就可以在phpinfo中看到redis了。
修改方法 :
1.點(diǎn)擊菜單 –> File –> Edit Template –> PHP –> PHP 5.3.5 php.ini
image.png
2.找到extension 扎堆的地方,加上 extension=redis.so;
測試:
<?php
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
$redis->set('test',"hello world");
$result = $redis->get('test');
var_dump($result);
?>
//正常會輸出: string(11) “hello world”
如果輸出:
Fatal error: Uncaught exception ‘RedisException’ with message ‘Redis server went away’ in
這是因為前面的工作只是用于編譯redis.so,并沒有安裝redis,用brew安裝就可以了。
執(zhí)行:brew install redis
安裝完成之后。執(zhí)行:redis-server
開啟redis服務(wù) 到這里就可以用了。
再給一個關(guān)閉服務(wù)的指令:redis-cli -p 6379 shutdown
(6379是測試端口,即測試代碼中的6379)
2017.09.28更:
9.昨天mamp pro換了新版,4.2版,還是按照上面的方法去安裝redis,但是安裝完之后,發(fā)現(xiàn)info中沒有redis,然后試了重裝,復(fù)制老的版本等好多種辦法還是不行,沒辦法,最終把php.ini跟其他的做對比,發(fā)現(xiàn)了問題,如圖:
圖1左側(cè)是我要用的php5.3.5,圖2是php7的版本,問題就出在圖2中箭頭的位置,此處本來是只有箭頭所指的那一句,這樣沒有加載所生成的redis.so文件,所以加上箭頭下面的語句,重啟即可。注意:如果換了其他的php版本,可能還需要改這個地方。