在 MAC 版 MAMP 環(huán)境下為 PHP7.x 安裝 redis 擴(kuò)展的過程。
一、首先解決一些安裝依賴的問題
1、(Mac 電腦中已安裝了 Homebrew 包管理器的可忽略此步)如果你的 MAC 電腦未安裝有 Homebrew——一個(gè)包管理器,需要先安裝 Homebrew 包管理器,后面步驟中的 ./configure 命令和安裝 redis 服務(wù)端的命令等需要 brew 為其安裝組件。
打開 terminal,安裝 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
將以上命令粘貼至終端(terminal),參考: https://brew.sh/index_zh-cn.html 。
腳本在執(zhí)行過程中會(huì)有多次暫停,并說明將它將做什么;同時(shí)也會(huì)邊執(zhí)行、邊需要聯(lián)網(wǎng)下載資源,下載速度不會(huì)很快(因?yàn)槭菄鴥?nèi)網(wǎng)絡(luò)訪問國外站點(diǎn)資源),請(qǐng)耐心等待安裝完成。
2、(Mac 電腦中已安裝了 configure 配置組件的可忽略此步)使用 brew 命令安裝 configure 配置組件。
brew install autoconf wget
二、下載 php-redis 擴(kuò)展組件的安裝包
在終端中使用 git clone 命令下載 php-redis 擴(kuò)展組件的安裝包:
git clone https://github.com/nicolasff/phpredis.git
當(dāng)然沒有用 git 也沒關(guān)系,可以自己去找官網(wǎng)下載:try https://github.com/nicolasff/phpredis.git 。
GitHub的phpredis倉庫下載develo
下載完成后系統(tǒng)會(huì)自動(dòng)解壓安裝包文件。如果未自動(dòng)解壓,請(qǐng)手動(dòng)解壓或使用 unzip phpredis.zip 命令解壓。
解壓后使用 cd 命令進(jìn)入 phpredis 目錄:
cd phpredis/
注意:phpredis/ 目錄的路徑如果不對(duì),請(qǐng)按照其在自己電腦上的完整路徑來切換,如 ./phpredis-php7/。
三、使用 phpize 命令編譯生成 configure 配置文件
三、使用 phpize 命令編譯生成 configure 配置文件
1、phpize 命令:
此時(shí)終端顯示的當(dāng)前目錄是 phpredis,在終端中執(zhí)行以下命令:
/Applications/MAMP/bin/php/php7.3.7/bin/phpize --with-php-config=/Applications/MAMP/bin/php/php7.3.7/bin/php-config
如果出現(xiàn)此錯(cuò)誤:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.
則是因?yàn)榇嗣钜蕾?autoconf 工具,需要安裝 autoconf 工具(參考第一步中的第2點(diǎn))。
如果執(zhí)行成功,會(huì)提示如下信息:

2、本步驟需要注意事項(xiàng):
在這一步需要注意的一個(gè)問題是,在使用 phpize 編譯命令時(shí),一定要使用 /Applications/MAMP/bin/php/php7.3.7/bin/phpize 這個(gè)應(yīng)用程序 MAMP 下的 php7.x 的 bin 目錄來執(zhí)行 phpize。
因?yàn)?MAC 自帶了 php 環(huán)境,可以使用 MAMP 將 php 配到命令行中,這時(shí)候你使用的 php -v 是 MAMP 加到環(huán)境變量的 php 版本,但是你如果直接使用 phpize 命令(未指定應(yīng)用程序 MAMP 下的 php7.x 的 bin 目錄的 phpize),那么 phpize 編譯的將是系統(tǒng)自帶的那個(gè) php 環(huán)境,所以直接使用 phpize 編譯擴(kuò)展的時(shí)候,會(huì)編譯到系統(tǒng)自帶的 PHP 環(huán)境下,故而須注意在使用 phpize 命令時(shí)一定要使用的是全路徑,而且上面的 php/php{版本}/ 目錄路徑有可能跟我的不一樣,請(qǐng)自行核對(duì)并調(diào)整 。
四、配置、編譯并安裝 phpredis
1、配置 phpredis 命令。
此時(shí)終端顯示的當(dāng)前目錄是 phpredis,在終端中執(zhí)行以下命令:
./configure --with-php-config=/Applications/MAMP/bin/php/php7.3.7/bin/php-config
如果執(zhí)行出錯(cuò),提示“未找到指定目錄”之類的信息,也是因?yàn)榇嗣钜蕾?autoconf 工具,需要安裝 autoconf 工具(參考第一步中的第2點(diǎn))。
如果執(zhí)行成功,像這樣:

2、編譯與安裝 phpredis 命令(make 是編譯,make install 是安裝)。
make && make install
安裝成功后,這時(shí)會(huì)在 phpredis/modules 目錄下生成了 redis.so 文件。同時(shí) redis.so 會(huì)自動(dòng)復(fù)制到/Applications/MAMP/bin/php/php7.3.7/lib/php/extensions/no-debug-non-zts-20180731/ 目錄下(extensions 后面帶日期部分的那一級(jí)目錄可能會(huì)與我的不一樣,請(qǐng)以自己電腦上的為準(zhǔn))。如果該目錄下不存在 redis.so,可手動(dòng)將 phpredis/modules 目錄下的 redis.so 復(fù)制過去。至此,phpredis 擴(kuò)展已安裝成功。
五、修改 php.ini
如果直接在對(duì)應(yīng)php版本中修改php.ini會(huì)失效(這里遇到個(gè)坑),建議在 MAMP Pro 軟件中打開 php.ini 文件并修改,因?yàn)樵诮K端中使用 vim 命令編輯 php.ini 文件或手動(dòng)打開編輯 php.ini 文件保存后可能不會(huì)起作用,所以建議在 MAMP Pro 軟件中打開 php.ini 文件并修改:

在 php.ini 中搜索 "extension=",在后面添加一行:"extension=redis.so",保存后重啟 MAMP。

六、檢查 redis 組件是否安裝成功
新建一個(gè) phpinfoTest.php 文件,輸入:
<?php phpinfo(); ?>
保存后運(yùn)行,查看是否有 redis 關(guān)鍵字:

七、測試 redis
1、如果你的 MAC 電腦上尚未安裝 redis 服務(wù)端 ,可用 brew 安裝 redis 服務(wù)端程序,很方便:
brew install redis //安裝 redis 服務(wù)端程序redis-server /usr/local/etc/redis.conf //啟動(dòng) redis 服務(wù)端進(jìn)程redis-cli ping //使用 redis-cli 命令啟動(dòng) redis 客戶端通信
如果你想要開機(jī)自啟動(dòng) redis 服務(wù),你可以將 redis 加入到系統(tǒng)的自啟動(dòng)服務(wù)中去:
brew services start redis
2、測試 redis 緩存是否起作用
新建一個(gè) redisTest.php 文件,輸入:
<?php$redis = new redis();$redis->connect('127.0.0.1', 6379);$redis->set('test',"hello world");$result = $redis->get('test');var_dump($result);?>
如果執(zhí)行上邊的 php 文件還是不能執(zhí)行,請(qǐng)看 6379 端口開了嗎,或者先關(guān)閉再開啟 redis-server:
redis-cli -p 6379 shutdown // 關(guān)閉 redis 服務(wù)
正常情況會(huì)輸出:string(11) “hello world”,如圖:
