You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在API Platform的PHP Dockerfile中安装Redis扩展失败,求解决方案

解决PHP Dockerfile中安装Redis扩展时的phpize失败问题

问题描述

在API Platform的PHP Dockerfile中添加以下命令安装Redis扩展:

RUN pecl install -o -f redis \
    &&  rm -rf /tmp/pear \
    &&  docker-php-ext-enable redis

执行docker-compose build构建时触发错误:

[app-php php_base 5/14] RUN pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis:
#0 2.750 downloading redis-6.0.2.tgz ...
#0 2.750 Starting to download redis-6.0.2.tgz (365,966 bytes)
#0 2.750 ..........................................................................done: 365,966 bytes
#0 3.176 43 source files, building
#0 3.176 running: phpize
#0 3.180 Configuring for:
#0 3.180 PHP Api Version: 20220829
#0 3.180 Zend Module Api No: 20220829
#0 3.180 Zend Extension Api No: 420220829
#0 3.193 Cannot find autoconf. Please check your autoconf installation and the
#0 3.193 $PHP_AUTOCONF environment variable. Then, rerun this script.
#0 3.193
#0 3.193 ERROR: `phpize' failed


failed to solve: process "/bin/sh -c pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis" did not complete successfully: exit code: 1

解决方案

方法1:补全编译依赖后使用pecl安装

错误根源是容器缺少编译PHP扩展必需的autoconf及相关构建工具。需先安装这些依赖,再执行扩展安装命令:

基于Debian/Ubuntu的镜像

# 安装编译依赖
RUN apt-get update && apt-get install -y \
    autoconf \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

# 安装并启用Redis扩展
RUN pecl install -o -f redis \
    && rm -rf /tmp/pear \
    && docker-php-ext-enable redis

基于Alpine的镜像

RUN apk add --no-cache \
    autoconf \
    g++ \
    make \
    && pecl install -o -f redis \
    && rm -rf /tmp/pear \
    && docker-php-ext-enable redis \
    && apk del autoconf g++ make

(安装完成后删除构建工具,减小镜像体积)

方法2:使用自动扩展安装脚本(推荐)

利用第三方扩展安装脚本可以自动处理所有依赖,无需手动安装编译工具,是Docker环境下安装PHP扩展的更简洁方案:

# 下载扩展安装脚本并赋予执行权限
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/

RUN chmod +x /usr/local/bin/install-php-extensions && \
    install-php-extensions redis

这个脚本会自动检测系统环境,下载并编译指定扩展,同时清理临时文件和不必要的依赖。

内容的提问来源于stack exchange,提问作者Astro-Otter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 11:52:50