laradock 中安装 Redis 扩展的正确姿势

解锁安装 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 协议》,转载必须注明作者和本文链接
分享使我快乐!
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2
xin6841414

此行命令

&& mv phpredis-5.0.2 /usr/src/php/ext/phpredis \

如果是 php5 的的安装的 redis 版本为 4.3.0 就不对了吧, 还是给 tar 命令执行解压目录吧

4年前 评论
白菜丶 (楼主) 4年前

/bin/sh: 1: docker-php-source: not found 报这个错

4年前 评论
Chico0O 4年前
Fx (作者) 4年前