在MAC版MAMP環(huán)境下為PHP7.x安裝redis擴(kuò)展的過程

之前有一位開發(fā)群里的朋友因?yàn)轫?xiàng)目需要馏予,在 MacBook 上安裝了 MAMP 開發(fā)環(huán)境昙读,來調(diào)試一個(gè) PHP 的網(wǎng)站項(xiàng)目。MAMP & MAMP Pro軟件是一款很好的在MAC下面運(yùn)行的網(wǎng)站集成環(huán)境軟件焊夸,其由Apache+MySQL+PHP+動(dòng)態(tài)DNS配置構(gòu)成对粪,PHP的版本可以動(dòng)態(tài)切換到最新版,功能強(qiáng)大箱靴,配置簡單腺逛,十分便于本地調(diào)試。

圖片.png

圖:MAMP 設(shè)置一個(gè)虛擬主機(jī)及網(wǎng)站安裝

后面他想在PHP7的版本下面安裝Redis的擴(kuò)展程序,以配合自己的程序開發(fā)棍矛。無奈在這位群友屢次安裝失敗之后安疗,找到我希望來解脫他在面對 terminal(命令行)拋出的一大串錯(cuò)誤消息時(shí)的痛苦。在這次的解決過程中自己也相當(dāng)于完成了一次學(xué)習(xí)够委,現(xiàn)在就發(fā)現(xiàn)的問題和需要注意的事項(xiàng)寫成一篇文章荐类。

在 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)資源)涩禀,請耐心等待安裝完成料滥。

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 丽声。

圖片.png

圖:在GitHub的phpredis倉庫下載develo

下載完成后系統(tǒng)會(huì)自動(dòng)解壓安裝包文件礁蔗。如果未自動(dòng)解壓,請手動(dòng)解壓或使用 unzip phpredis.zip 命令解壓雁社。

解壓后使用 cd 命令進(jìn)入 phpredis 目錄:

cd phpredis/

注意:phpredis/ 目錄的路徑如果不對浴井,請按照其在自己電腦上的完整路徑來切換,如 ./phpredis-php7/霉撵。

三磺浙、使用 phpize 命令編譯生成 configure 配置文件

1、phpize 命令:

此時(shí)終端顯示的當(dāng)前目錄是 phpredis徒坡,在終端中執(zhí)行以下命令:

/Applications/MAMP/bin/php/php7.2.1/bin/phpize --with-php-config=/Applications/MAMP/bin/php/php7.2.1/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ì)提示如下信息:

圖片.png

圖:phpize 命令執(zhí)行成功截圖伦泥。

2、本步驟需要注意事項(xiàng):

在這一步需要注意的一個(gè)問題是,在使用 phpize 編譯命令時(shí)不脯,一定要使用 /Applications/MAMP/bin/php/php7.2.1/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{版本}/ 目錄路徑有可能跟我的不一樣峦剔,請自行核對并調(diào)整 。

四龙优、配置羊异、編譯并安裝 phpredis

1事秀、配置 phpredis 命令彤断。

此時(shí)終端顯示的當(dāng)前目錄是 phpredis,在終端中執(zhí)行以下命令:

./configure --with-php-config=/Applications/MAMP/bin/php/php7.2.1/bin/php-config

如果執(zhí)行出錯(cuò)易迹,提示“未找到指定目錄”之類的信息宰衙,也是因?yàn)榇嗣钜蕾?autoconf 工具,需要安裝 autoconf 工具(參考第一步中的第2點(diǎn))睹欲。

如果執(zhí)行成功供炼,像這樣:

圖片.png

圖:./configure 命令執(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.0.8/lib/php/extensions/no-debug-non-zts-20171025/ 目錄下(extensions 后面帶日期部分的那一級目錄可能會(huì)與我的不一樣,請以自己電腦上的為準(zhǔn))蔚出。如果該目錄下不存在 redis.so弟翘,可手動(dòng)將 phpredis/modules 目錄下的 redis.so 復(fù)制過去。至此骄酗,phpredis 擴(kuò)展已安裝成功稀余。

五、修改 php.ini

建議在 MAMP Pro 軟件中打開 php.ini 文件并修改趋翻,因?yàn)樵诮K端中使用 vim 命令編輯 php.ini 文件或手動(dòng)打開編輯 php.ini 文件保存后可能不會(huì)起作用睛琳,所以建議在 MAMP Pro 軟件中打開 php.ini 文件并修改:

圖片.png

圖:MAMP 中打開 php.ini。

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

圖片.png

圖:修改 php.ini 文件。

六丧凤、檢查 redis 組件是否安裝成功

新建一個(gè) phpinfoTest.php 文件募闲,輸入:

<?php phpinfo(); ?>

保存后運(yùn)行,查看是否有 redis 關(guān)鍵字:

圖片.png

圖:phpinfo 中的 redis 信息愿待。

七浩螺、測試 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í)行,請看 6379 端口開了嗎砸紊,或者先關(guān)閉再開啟 redis-server:

redis-cli -p 6379 shutdown // 關(guān)閉 redis 服務(wù)

正常情況會(huì)輸出:string(11) “hello world”传于,如圖:

圖片.png

圖:成功,淚崩醉顽!

結(jié)束語

至此沼溜,在 MAC 版 MAMP 環(huán)境下為 PHP7.x 安裝 redis 擴(kuò)展的實(shí)操過程分享完畢,送給有需要的人游添!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末系草,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子唆涝,更是在濱河造成了極大的恐慌找都,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件廊酣,死亡現(xiàn)場離奇詭異能耻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)啰扛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門嚎京,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人隐解,你說我怎么就攤上這事鞍帝。” “怎么了煞茫?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵帕涌,是天一觀的道長摄凡。 經(jīng)常有香客問我,道長蚓曼,這世上最難降的妖魔是什么亲澡? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮纫版,結(jié)果婚禮上床绪,老公的妹妹穿的比我還像新娘。我一直安慰自己其弊,他們只是感情好癞己,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梭伐,像睡著了一般痹雅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糊识,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天绩社,我揣著相機(jī)與錄音,去河邊找鬼赂苗。 笑死愉耙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哑梳。 我是一名探鬼主播劲阎,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鸠真!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起龄毡,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤吠卷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后沦零,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祭隔,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年路操,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疾渴。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屯仗,死狀恐怖搞坝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情魁袜,我是刑警寧澤桩撮,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布敦第,位于F島的核電站,受9級特大地震影響店量,放射性物質(zhì)發(fā)生泄漏芜果。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一融师、第九天 我趴在偏房一處隱蔽的房頂上張望右钾。 院中可真熱鬧,春花似錦旱爆、人聲如沸霹粥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽后控。三九已至,卻和暖如春空镜,著一層夾襖步出監(jiān)牢的瞬間浩淘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工吴攒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留张抄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓洼怔,卻偏偏與公主長得像署惯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子镣隶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容