Mac 編譯安裝 PHPRedis 模組

alalala發表於2019-12-31

本地配置

PHP 版本

PHP 7.40 通過 HomeBrew 安裝。

~ php -v
PHP 7.4.0 (cli) (built: Nov 29 2019 16:18:44) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.0, Copyright (c), by Zend Technologies

PHPRedis 模組地址

https://github.com/phpredis/phpredis

尋找與當前 PHP 版本相匹配的 phpredis 版本,此時直接使用 develop 版本即可。

20191231191008.png

安裝

因為在編譯安裝 phpredis 過程中需要使用到 PHP 的幾個配置檔案,所以通過命令 brew list php 檢視下 PHP 安裝的主要檔案所在的路徑:

~ brew list php
/usr/local/Cellar/php/7.4.0/.bottle/etc/ (4 files)
/usr/local/Cellar/php/7.4.0/.bottle/var/log/php-fpm.log
/usr/local/Cellar/php/7.4.0/bin/pear
/usr/local/Cellar/php/7.4.0/bin/peardev
/usr/local/Cellar/php/7.4.0/bin/pecl
/usr/local/Cellar/php/7.4.0/bin/phar
/usr/local/Cellar/php/7.4.0/bin/phar.phar
/usr/local/Cellar/php/7.4.0/bin/php
/usr/local/Cellar/php/7.4.0/bin/php-cgi
/usr/local/Cellar/php/7.4.0/bin/php-config // 需要用到這個
/usr/local/Cellar/php/7.4.0/bin/phpdbg
/usr/local/Cellar/php/7.4.0/bin/phpize // 需要用到這個
/usr/local/Cellar/php/7.4.0/homebrew.mxcl.php.plist
/usr/local/Cellar/php/7.4.0/include/php/ (312 files)
/usr/local/Cellar/php/7.4.0/lib/httpd/modules/libphp7.so
/usr/local/Cellar/php/7.4.0/lib/php/ (15 files)
/usr/local/Cellar/php/7.4.0/pecl -> /usr/local/lib/php/pecl // 需要用到這個
/usr/local/Cellar/php/7.4.0/sbin/php-fpm
/usr/local/Cellar/php/7.4.0/share/man/ (8 files)
/usr/local/Cellar/php/7.4.0/share/php/ (159 files)

關鍵的PHP檔案、資料夾說明

  • phpize: phpize 是用來擴充套件 PHP 擴充套件模組的,通過 phpize 可以建立 PHP 的外掛模組,
    比如你想在原來編譯好的 PHP 中加入 memcached 或者 ImageMagick 等擴充套件模組,可以使用 phpize;
  • php-config: PHP 安裝完後在 bin 目錄下有個 php-configphp-config 是一個指令碼檔案,用於獲取所安裝的 PHP 配置的資訊;
  • pecl: PHP Extension Community Library(PHP 社群擴充套件庫),管理底層的 PHP 擴充套件,用 C 或者 C++編寫外部模組然後載入至 PHP 中,如 redis, xdebug 等模組。簡而言之,就是存放擴充套件模組的,這次我們安裝的 reds.so 檔案就會存放在這裡。

安裝 phpredis

  • 下載 phpredis:

    任意目錄使用 git 直接下載即可:

    ~ git clone https://github.com/phpredis/phpredis
  • 進入 phpredis 目錄:

    ~ cd phpredis
  • 進行編譯安裝?

    ~ sudo /usr/local/Cellar/php/7.4.0/bin/phpize
    Configuring for:
    PHP Api Version:         20190902
    Zend Module Api No:      20190902
    Zend Extension Api No:   320190902
    
    ~ ./configure --with-php-config=/usr/local/Cellar/php/7.4.0/bin/php-config
    .
    .
    .
    .
    creating libtool
    appending configuration tag "CXX" to libtool
    configure: patching config.h.in
    configure: creating ./config.status
    config.status: creating config.h
    config.status: config.h is unchanged
    
    ~ make && make install
    
    /bin/sh /Users/huanglongfei/Sites/ValetSites/restful-api/phpredis/libtool --mode=install cp ./redis.la /Users/huanglongfei/Sites/ValetSites/restful-api/phpredis/modules
    cp ./.libs/redis.so /Users/huanglongfei/Sites/ValetSites/restful-api/phpredis/modules/redis.so
    cp ./.libs/redis.lai /Users/huanglongfei/Sites/ValetSites/restful-api/phpredis/modules/redis.la
    ----------------------------------------------------------------------
    Libraries have been installed in:
     /Users/huanglongfei/Sites/ValetSites/restful-api/phpredis/modules
    
    If you ever happen to want to link against installed libraries
    in a given directory, LIBDIR, you must either use libtool, and
    specify the full pathname of the library, or use the `-LLIBDIR'
    flag during linking and do at least one of the following:
     - add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
       during execution
    
    See any operating system documentation about shared libraries for
    more information, such as the ld(1) and ld.so(8) manual pages.
    ----------------------------------------------------------------------
    
    Build complete.
    Don't forget to run 'make test'.
    
    Installing shared extensions:     /usr/local/Cellar/php/7.4.0/pecl/20190902/

    可以看到,最後安裝位置為 /usr/local/Cellar/php/7.4.0/pecl/20190902/

    配置 PHP,開啟 redis.so 擴充套件

    • 編輯 php.ini 檔案;

    此處當存在多個PHP版本時,一定要改對自己需要的版本。

    ~ vim /usr/local/etc/php/7.4/php.ini
    • Dynamic Extensions 配置組下,新增一行 extension=redis.so;

    • 檢視 ·extension_dir 配置,也就是擴充套件目錄配置是否與實際的相同,不同則進行更改,此處應為 /usr/local/Cellar/php/7.4.0/pecl/20190902/

    • 重啟 PHPPHP-FPM

    檢視是否安裝成功

    執行 php -m 命令即可:

    ~ php -m
    .
    .
    .
    readline
    redis
    Reflection
    session
    shmop
    .
    .
    .

    安裝成功!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章