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 协议》,转载必须注明作者和本文链接
分享使我快乐!
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2
xin6841414

此行命令

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

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

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

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

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!