mac下編譯安裝php redis擴展

mac下編譯安裝php擴展

redis

1. 下載源文件:

  • 這裏就會有個問題,到哪裏下載呢 - -php

  • 答案是 php的官方擴展庫--peclredis

  • 打開 pecl網站 是能夠在上面直接經過瀏覽器下載的,可是咱們爲了裝逼,咱們要用命令行下載! - -apache

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

  • 可是當咱們執行上面的命令會出現以下提示安全

  • -bash: wget: command not foundbash

  • 裝逼失敗。。。mac默認沒有wget命令- -curl

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

  • 因此咱們的命令變成網站

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

  • 可是若是你真的這樣去敲命令,你又上當了--

  • 由於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

打完,收功!

相關文章
相關標籤/搜索