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

Docker环境中安装PHP Redis扩展(Pecl方式)失败求助

解决Docker中PHP安装Redis扩展的PEAR OS识别错误

问题根源

报错源于PEAR的OS/Guess.php组件无法识别Docker BuildKit生成的Linux系统签名(Linux buildkits...),导致依赖分析流程中断,最终Redis扩展安装失败。

解决方案

方案1:临时禁用Docker BuildKit构建

构建镜像时通过环境变量关闭BuildKit,避免特殊系统签名触发识别问题:

DOCKER_BUILDKIT=0 docker build -t your-symfony-php-image .

方案2:升级PEAR后再安装Redis

修改Dockerfile,先升级PEAR到最新版本(修复了系统签名识别问题),再执行Redis扩展安装:

FROM php:8.1-fpm-buster

COPY php.ini /usr/local/etc/php/conf.d/docker-php-config.ini

RUN apt-get update && apt-get install -y \
    gnupg \
    g++ \
    procps \
    openssl \
    git \
    unzip \
    zlib1g-dev \
    libzip-dev \
    libfreetype6-dev \
    libpng-dev \
    libjpeg-dev \
    libicu-dev  \
    libonig-dev \
    libxslt1-dev \
    acl \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    zip

# 升级PEAR到最新版本
RUN pear upgrade PEAR
# 安装Redis扩展并启用
RUN pecl install redis && docker-php-ext-enable redis

方案3:源码编译安装Redis扩展

如果PEAR相关问题仍无法解决,直接通过源码编译安装:

FROM php:8.1-fpm-buster

COPY php.ini /usr/local/etc/php/conf.d/docker-php-config.ini

RUN apt-get update && apt-get install -y \
    gnupg \
    g++ \
    procps \
    openssl \
    git \
    unzip \
    zlib1g-dev \
    libzip-dev \
    libfreetype6-dev \
    libpng-dev \
    libjpeg-dev \
    libicu-dev  \
    libonig-dev \
    libxslt1-dev \
    acl \
    libjpeg62-turbo-dev \
    libmcrypt-dev \
    zip \
    libredis-dev

# 源码编译安装Redis扩展
RUN git clone https://github.com/phpredis/phpredis.git \
    && cd phpredis \
    && phpize \
    && ./configure \
    && make && make install \
    && docker-php-ext-enable redis \
    && cd ../ && rm -rf phpredis

验证安装

镜像构建完成后,进入容器执行以下命令确认Redis扩展已成功加载:

php -m | grep redis

内容的提问来源于stack exchange,提问作者Abdullah Alhariri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:57:55