执行docker-compose up -d构建PHP镜像时xdebug编译安装失败求助
问题原因
你的PHP镜像构建失败有两个核心诱因:
- 你使用的
php:7-fpm-alpine默认基于Alpine 3.14及以上版本,该版本的musl libc依赖内核的FAKE_SYSCTL权限,低于20.10版本的Docker引擎默认没有开放该权限,会触发Operation not permitted的执行权限报错 - 你在安装xdebug时没有指定版本,pecl会默认拉取最新的xdebug 3.1+版本,该版本的配置参数和你后续写入的xdebug 2版本参数完全不兼容,就算构建成功xdebug也无法正常生效
解决步骤
1. 修复构建权限报错,二选一即可:
- 方案A:将本地Docker引擎升级到20.10及以上版本,即可兼容新版Alpine镜像的权限要求
- 方案B:不想升级Docker的话,将Dockerfile的基础镜像替换为旧版Alpine的PHP镜像,修改第一行为:
FROM php:7.4-fpm-alpine3.13
2. 修复xdebug版本不匹配问题
将扩展安装命令中的xdebug指定为2.x的稳定版本,修改对应行:
原代码:
pecl install -f xdebug redis
修改为:
pecl install -f xdebug-2.9.8 redis
修改完成后重新执行docker-compose up -d即可正常构建。
内容的提问来源于stack exchange,提问作者Jeremy Park
相关产品推荐
相关产品推荐

