解鎖安裝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 協議》,轉載必須註明作者和本文連結