mac下編譯安裝php redis擴充套件

Betta發表於2017-03-28

mac下編譯安裝php擴充套件

redis

1. 下載原始檔:

  • 這裡就會有個問題,到哪裡下載呢 – –

  • 答案是 php的官方擴充套件庫–pecl

  • 開啟 pecl網站 是可以在上面直接通過瀏覽器下載的,但是我們為了裝逼,我們要用命令列下載! – –

  • wget https://pecl.php.net/get/redis-3.1.2.tgz

  • 但是當我們執行上面的命令會出現如下提示

  • -bash: wget: command not found

  • 裝逼失敗。。。mac預設沒有wget命令- –

  • 網上有多種方法,比方說用homebrew 安裝 wget,那我們又要去裝homebrew….我選擇拒絕,mac 沒有 wget 但是她有 curl

  • 所以我們的命令變成

  • curl https://pecl.php.net/get/redis-3.1.2.tgz

  • 但是如果你真的這樣去敲命令,你又上當了–

  • 因為curl 需要用 -o 引數指定一下輸出的檔名稱,不然。。。反正就顯示一堆亂碼,下載不成功(別問我為什麼知道…)

  • 所以最後我的究極下載命令變成了 (別問我為什麼要用sudo….):

  • sudo curl -o php-redis-3.1.2.tgz https://pecl.php.net/get/redis-3.1.2.tgz(加粗是一種體貼)

2. 解壓原始檔:

  • 同樣這裡也有問題,怎麼解壓呢–

  • 我們來 百度一下

  • 通過學習我們知道我們應該用 tar -xzf 命令,解壓.tgz 字尾的檔案

  • sudo tar -xzf php-redis-3.1.2.tgz

  • 我們看到 redis-3.1.2 資料夾,說明解壓成功

3. 編譯原始檔

  • 終於到了編譯了。。。美滋滋:

  • 先進入目錄: 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 disablecsrutil 這個功能禁用掉,這樣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/

4. 配置php.ini

  • 再php.ini中新增:extension = redis.so

5. 重啟apache

6. 檢視phpinfo()

  • 在命令列輸入:php -m|grep redis

  • 可以看到:redis

打完,收功!

相關文章