這裏就會有個問題,到哪裏下載呢 - -php
答案是 php的官方擴展庫--peclredis
打開 pecl網站 是能夠在上面直接經過瀏覽器下載的,可是咱們爲了裝逼,咱們要用命令行下載! - -apache
wget https://pecl.php.net/get/redis-3.1.2.tgz
瀏覽器
可是當咱們執行上面的命令會出現以下提示安全
-bash: wget: command not found
bash
裝逼失敗。。。mac默認沒有wget命令- -curl
網上有多種方法,比方說用homebrew 安裝 wget,那咱們又要去裝homebrew....我選擇拒絕,mac 沒有 wget 可是她有 curl學習
因此咱們的命令變成網站
curl https://pecl.php.net/get/redis-3.1.2.tgz
this
可是若是你真的這樣去敲命令,你又上當了--
由於curl 須要用 -o 參數指定一下輸出的文件名稱,否則。。。反正就顯示一堆亂碼,下載不成功(別問我爲何知道...)
因此最後個人究極下載命令變成了 (別問我爲何要用sudo....):
sudo curl -o php-redis-3.1.2.tgz https://pecl.php.net/get/redis-3.1.2.tgz
(加粗是一種體貼)
一樣這裏也有問題,怎麼解壓呢--
咱們來 百度一下
經過學習咱們知道咱們應該用 tar -xzf
命令,解壓.tgz 後綴的文件
sudo tar -xzf php-redis-3.1.2.tgz
咱們看到 redis-3.1.2
文件夾,說明解壓成功
終於到了編譯了。。。美滋滋:
先進入目錄: cd redis-3.1.2
運行phpize命令生成配置文件:sudo phpize
這時若是沒有安裝m4 和 autoconf的話會提示以下錯誤:
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script
那咱們來安裝一下,命令以下(執行命令不要急,一個個來):
su - cd /usr/local curl -o m4-1.4.16.tar.gz http://ftp.gnu.org/gnu/m4/m4- 1.4.16.tar.gz tar -zvxf m4-1.4.16.tar.gz cd m4-1.4.16/ ./configure && make && make install cd ../ curl -o autoconf-2.62.tar.gz http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz tar -zvxf autoconf-2.62.tar.gz cd autoconf-2.62/ ./configure && make && make install
安裝完成後,咱們再去redis 目錄去 執行 phpsize
(由於咱們如今已經切換到root 帳號就不須要 sudo了)發現沒有報錯了。
Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226
運行./configure:
須要找一下php-config的位置:
which php-conifg
我本地的位置是:
/usr/bin/php-config
因此咱們執行的命令是: ./configure --with-php-config=/usr/bin/php-config
編譯 執行命令: make
安裝 執行命令: make install
這時程序會講編譯好的.so 文件拷貝到php默認的擴展文件夾下面
可是mac的 /usr 文件下的有些目錄 root 帳戶也沒有寫權限,因此會報錯
這時 須要 重啓電腦 按住 command + r 進入安全模式,打開終端 csrutil disable
將 csrutil
這個功能禁用掉,這樣root就有權限了,從新執行命令,獲得以下結果:
Libraries have been installed in: /usr/local/redis-3.1.2/modules ........ Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20131226/
再php.ini中添加:extension = redis.so
在命令行輸入:php -m|grep redis
能夠看到:redis