Docker中通过pecl安装扩展提示“No releases available”错误如何解决
报错原因
- 核心原因是版本兼容性问题:你使用的PHP7.4版本最高仅支持Xdebug 3.1.x系列,Xdebug 3.2及以上版本已放弃对PHP7.4的支持,
pecl install xdebug默认会拉取最新稳定版,匹配不到符合PHP版本要求的发行版,就会返回无可用版本的报错。 - 次要可能性是pecl源缓存失效,本地pecl通道数据未更新导致无法识别可用版本。
修复方案
修改php.dockerfile中Xdebug安装的相关逻辑即可:
- 先更新pecl通道数据,再指定安装兼容PHP7.4的Xdebug版本
- 补充Xdebug3版本对应的正确配置项(原2.x版本的
remote_enable配置在3.x中已废弃)
修改后的php.dockerfile参考:
FROM php:7.4-fpm WORKDIR /var/www/html RUN apt-get update && \ apt-get install -y ca-certificates && \ apt-get clean && rm -rf /var/lib/apt/lists/* RUN docker-php-ext-install pdo pdo_mysql # 先更新pecl通道,再安装指定版本xdebug RUN pecl channel-update pecl.php.net \ && pecl install xdebug-3.1.6 \ && docker-php-ext-enable xdebug \ && echo "xdebug.mode=debug" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.client_host = host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \ && echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
如果需要安装Redis扩展,同理指定兼容版本即可:
RUN pecl install redis-5.3.7 \ && docker-php-ext-enable redis
修改完成后重新构建镜像即可生效:
docker-compose build php docker-compose up -d
内容的提问来源于stack exchange,提问作者Pingo
相关产品推荐
相关产品推荐

