[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:

  1. Install wget & pecl.

  2. Install pear.

  3. Install PHPRedis.

  4. About php.ini.

✔︎ 安裝方法2( 最後透過此方法安裝完成 ):

  1. Install PHP-Redis With MAMP

  2. 關於 Cannot find config.m4 錯誤


Install wget & pecl

詳細可參考:How to install wget in macOS? [closed]

Img from https://www.google.com/search?biw=1868&bih=928&tbm=isch&sa=1&ei=sFQoXaSHHcPWhwP346v4Bg&q=homebrew&oq=homebrew&gs_l=img.3..0j0i7i30l2j0i30l7.3393.4872..5048...0.0..0.57.304.6......0....1..gws-wiz-img.......35i39j0i10i24.qZNiJeP4uWY#imgrc=jJS8P8NvKE_aiM:

因為安裝 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

詳細可參考:[教學] Mac 安裝 pecl ,安裝 php extension.

首先安裝 pear

1
$ wget [http://pear.php.net/go-pear.phar](http://pear.php.net/go-pear.phar)

**Success**

接下來輸入:

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 你可以看到一些資訊,代表成功了!

**pecl can use now**


Install PHP-Redis

詳細可參考:Install phpredis MAC OSX.

首先 Git clone phpredis 然後進入資料夾內安裝:

1
2
3
$ git clone [https://www.github.com/phpredis/phpredis.git](https://www.github.com/phpredis/phpredis.git)
$ cd phpredis
$ phpize && ./configure && make && sudo make install

**Install success**

接下來添加這面這行到你的 php.ini

1
$ extension=redis.so

Img from [this](https://www.google.com/search?tbm=isch&source=hp&biw=1868&bih=977&ei=U2QoXZEpjuzzBazWg-AM&q=php&oq=php&gs_l=img.3..35i39l2j0l8.1450.2194..2353...0.0..0.76.252.6......0....1..gws-wiz-img.....0.XGJUGuNsjtg#imgrc=XTO7ngnkIubMrM:).


關於怎麼找 php.ini

創建一支 .php 檔案輸入下面程式碼,然後打開它:

1
2
3
<?php
phpinfo();
?>

尋找 Loaded Configuration File 這行,接下來就可直接打開編輯或是 vim

接下來重啟你的php,輸入下列指令:

1
$ brew services restart (php@7.1.8) **// 最後php@後面放你的版本**

如果又噴錯,發生下面情形:

試試看輸入下面指令:

1
2
3
4
5
$ 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)

$ chmod +x /usr/local/bin/brew-services.rb

$ brew services help

接下來重啟你的 php

1
2
$ brew services restart php@7.2
$ make test

最後可以輸入指令來檢查有無安裝成功:

1
$ php -r "if (new Redis() == true){ echo \"\r\n OK \r\n\"; }"

Install PHP-Redis With MAMP

MAMP詳細安裝可參考:[PHP][Mac] 00. 覺得開發環境設定很麻煩嗎,用MAMP安裝就對了!

詳細可參考:在MAC版MAMP環境下為PHP7.x安裝redis擴展的過程.

或是這篇: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
2
3
$ brew install homebrew/core/libiconv

$ ./configure --with-iconv=$(brew --prefix 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 檔案路徑

系統如果沒有提示你重開必須自己手動重啟

大功告成啦

Finally finished

如果無法成功,記得把上方剛剛最後要輸入路徑的 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 ),或是留個言,感謝各位大大指教。


參考網站