laradock 中安裝 Redis 擴充套件的正確姿勢

白菜丶發表於2020-06-21

解鎖安裝redis擴充套件的正確姿勢

背景:執行 ‘docker-compose up -d nginx php-fpm mysql workspace’ 時一直卡在 php-fpm 中,且提示安裝 redis 擴充套件失敗

解決:

開啟php-fpm/Dockerfile檔案並替換安裝redis擴充套件的程式碼塊

###########################################################################
# PHP REDIS EXTENSION
###########################################################################

ARG INSTALL_PHPREDIS=false

RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
    # Install Php Redis Extension
    if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
      curl -L -o /tmp/reids.tar.gz "https://codeload.github.com/phpredis/phpredis/tar.gz/4.3.0"; \
    else \
      curl -L -o /tmp/reids.tar.gz "https://codeload.github.com/phpredis/phpredis/tar.gz/5.0.2"; \
    fi \
    && cd /tmp \
    && tar -xzf reids.tar.gz \
    && docker-php-source extract \
    && mv phpredis-5.0.2 /usr/src/php/ext/phpredis \
    && ls -l /usr/src/php/ext | grep redis \
    && docker-php-ext-install phpredis \
    && php -m | grep redis \
    && rm -rf /tmp/reids.tar.gz \
;fi

原理:

pecl的安裝方式走不通,我們就自己搞編譯安裝

解釋:

1.“docker-php-source extract”用於建立“/usr/src/php”目錄,所有PHP擴充套件原始碼存放於“/usr/src/php/ext”中
2.“docker-php-ext-install”用於安裝“/usr/src/php/ext”中的特定擴充套件,並且會自動配置php.ini

提示:

1、如果提示“&&”錯誤,請刪除把地址包起來的雙引號
2、redis版本,可以檢視pecl的官網找合適自己的版本

結語

遇到問題彆氣餒,請相信自己能行!
思考,嘗試! 如果失敗,那就查閱資料,再思考,再嘗試!

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

相關文章