[PHP Note] — 關於 php-Redis install on Mac OSX
Introduction & 前言
最近因為工作關係有碰到 Redis ,雖然菜雞前端對後端還一竅不通,不過照慣例關於安裝的部分還是要寫一下的!以後也有個根據可以來看看,以防忘記。所以這只是小筆記關於 PHP-Redis 的安裝( For Mac OSX 因為菜雞我大部分使用 Mac),如果有誤還請不吝嗇指教。
雖然不太了解 Redis 是什麼,但是還是要餵狗( google )一下。REmote DIctionary Server(Redis) 是一個 key-value 儲存系統。常常聽到需要大量用到資料庫(快取 Cache 的時候)的時候就會透過 Redis 來減輕資料庫的壓力。
這邊不過多探討,詳情可以見 傳送門
Summary & 摘要
安裝方法1:
✔︎ 安裝方法2( 最後透過此方法安裝完成 ):
Install wget & pecl
因為安裝 PHP-Redis 必須透過 pecl,所以必須先做一些事前作業,
首先如果沒有安裝 brew 需要先安裝:
1 | $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
接下來透過 brew 來安裝 wget:
1 | $ brew install wget --with-libressl |
這時候如果你炸開了,出現警告的話試試看:
1 | $ brew install wget |
Now let’s install pear
首先安裝 pear:
1 | $ wget [http://pear.php.net/go-pear.phar](http://pear.php.net/go-pear.phar) |
接下來輸入:
1 | $ php -d detect_unicode=0 go-pear.phar |
‘
接下來會顯示一些資訊,如果都沒有要輸入就一路 Enter 到尾吧!
接下來添加環境變數到你的 .zshrc 或 .config 或 .bash_profile:
(通常會在 /Users/$USER/ )
1 | $ export PATH=$PATH:/Users/zehung/pear/bin |
注意:添加完成後必須重新啟動 Terminal 或 iTerm!
現在輸入 pecl help 你可以看到一些資訊,代表成功了!
Install PHP-Redis
詳細可參考:Install phpredis MAC OSX.
首先 Git clone phpredis 然後進入資料夾內安裝:
1 | $ git clone [https://www.github.com/phpredis/phpredis.git](https://www.github.com/phpredis/phpredis.git) |
接下來添加這面這行到你的 php.ini
1 | $ extension=redis.so |
關於怎麼找 php.ini
創建一支 .php 檔案輸入下面程式碼,然後打開它:
1 |
|
尋找 Loaded Configuration File 這行,接下來就可直接打開編輯或是 vim。
接下來重啟你的php,輸入下列指令:
1 | $ brew services restart (php@7.1.8) **// 最後php@後面放你的版本** |
如果又噴錯,發生下面情形:
試試看輸入下面指令:
1 | $ curl -o /usr/local/bin/brew-services.rb [https://gist.githubusercontent.com/lwe/766293/raw/75a7907004bbff0eb3b072d1d951be2cfe7e5020/brew-services.rb](https://gist.githubusercontent.com/lwe/766293/raw/75a7907004bbff0eb3b072d1d951be2cfe7e5020/brew-services.rb) |
接下來重啟你的 php:
1 | $ brew services restart php@7.2 |
最後可以輸入指令來檢查有無安裝成功:
1 | $ php -r "if (new Redis() == true){ echo \"\r\n OK \r\n\"; }" |
Install PHP-Redis With MAMP
MAMP詳細安裝可參考:[PHP][Mac] 00. 覺得開發環境設定很麻煩嗎,用MAMP安裝就對了!
或是這篇:MAMP下安装PHP Redis扩展及Redis下载使用.( ✔︎ 我是參考這篇安裝完成的)
事前準備必須先安裝 Homebrew,直接輸入下方指令安裝:
1 | $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
讓我們騰雲駕霧吧
首先必須先對 PHP 進行配置,我們先下載 PHP 源碼 (依你的版本 盡量是 .tar 格式 網址在下方傳送門),然後放置你版本的資料夾:
1 | $ /Applications/MAMP/bin/php/php(你的版本)/include/php |
記得路徑不一定是絕對的,要找到自己的 MAMP 資料夾後再去找你的版本號,源碼下載傳送門,如果找不到可以試著使用下面一行的指令(記得要安裝上方的 wget 哦!)。
1 | wget -O php-版本號.tar.gz http://us.php.net/get/php-5.5.14.tar.gz/from/this/mirror |
然後輸入 ./configure 安裝,成功會出現下圖:
如果失敗的話可以參考 傳送門 並執行下面這兩個:
1 | $ brew install homebrew/core/libiconv |
然後在 /Applications/MAMP/bin/php/php( 你的版本 )/include/php 這個資料夾下 **Git Clone PHP-Redis( 傳送門 )**:
1 | $ git clone [https://github.com/phpredis/phpredis.git](https://github.com/phpredis/phpredis.git) |
先進入 clone 下來的 PHP-Redis
1 | $ cd phpredis |
接著輸入( 路徑滿重要的 錯誤可能要自己抓一下 踩了好久的坑 ):
1 | $ /Applications/MAMP/bin/php/php(你的版本)/bin/phpize |
再接著輸入:
1 | $ ./configure --with-php-config=/Applications/MAMP/bin/php/php(你的版本)/bin/php-config |
最後輸入 make, 成功會看見下圖:
1 | $ make |
重要步驟注意!!
成功後你的資料夾會多一個 module,這時候進到裡面複製 redis.so 的執行程式,然後丟掉 applications/MAMP/bin/php/php版本號/lib/php/extensions/no-debug-non-zts-一串數字 下面,路徑自己要看一下。
最後的最後我們只需要把 extension 加上你所使用的 php.ini 即可,現在你可以 cd 進入 module 然後 ls 看看有沒有 redis.so 的檔案,然後打開你的 MAMP 再你所使用 PHP 版本的 php.ini最後加上 extension 即可完成。
大功告成啦
如果無法成功,記得把上方剛剛最後要輸入路徑的 redis.so 那個地方改為 extension = redis.so; 即可。
關於 Cannot find config.m4 錯誤
如果看見這個錯誤(詳情 傳送門)
這是因為你所在的路徑錯誤,或是沒有找到 config.m4 這個檔案。首先進入你 MAMP 所用的那個 PHP的版本資料夾,進入下面的位子。
1 | $ cd /Applications/MAMP/bin/php/php(你的版本)/include/php/ext/zlib |
再次執行:
1 | $ /Applications/MAMP/bin/php/php(你的版本)/bin/phpize |
如果再度噴錯代表可能檔案名稱不對,更改檔案名稱即可。
1 | $ mv config0.m4 config.m4 |
然後再次執行一次下列程式碼,接著會看到下一張圖:
1 | $ /Applications/MAMP/bin/php/php(你的版本)/include/php/ext/zlib |
Conclusion & 結論
因為本機安裝一直無法成功,後來改用 MAMP PRO 終於安裝成功,一直卡住噴錯的人也可以試試,以上僅供參考,寫成小筆記來記錄之後自己比較不會忘記。因為對後端非常之不熟,有任何疑慮都可以餵狗( google ),或是留個言,感謝各位大大指教。