PHP 8.5.5 是截至2026年9月Docker Hub上稳定可用的最新官方镜像,php:8.5.5-fpm等标签可直接使用,而php:8.5.7不存在,拉取会报manifest unknown;开发选php:8.5.5-apache,生产推荐php:8.5.5-fpm或alpine变体,并需注意多阶段构建、权限控制与FastCGI配置。

PHP 8.5 目前没有官方发布的 8.5.7 镜像标签,截至 2026 年 9 月,Docker Hub 上可稳定使用的最新 PHP 8.5 版本是 php:8.5.5-fpm(或 php:8.5-cli),它已通过 PHP 官方源编译并收录于 Docker Library。直接使用 php:8.5 或 php:8.5.7 会失败——拉取时提示 manifest unknown。
选对基础镜像,避免踩坑
官方支持的 PHP 8.5 镜像只有以下几类(推荐按场景选择):
-
开发调试:用
php:8.5.5-apache,自带 Apache,适合快速验证 Web 请求 -
生产 FPM 场景:用
php:8.5.5-fpm,需搭配 Nginx 反向代理,更轻量、更安全 -
资源敏感环境:用
php:8.5.5-fpm-alpine,体积小、启动快,但部分扩展需手动适配 Alpine 的 musl libc -
绝对避开:
php:8.5(指向未发布的 unstable 标签)、php:latest(可能跳到 8.6+,破坏兼容性)
Dockerfile 必须装编译依赖才能启扩展
基础镜像(如 php:8.5.5-fpm)只含运行时,不含 .h 头文件。执行 docker-php-ext-install gd 报错 png.h: No such file or directory 就是因为缺开发包。
正确写法是在 RUN 中先装系统级依赖:
立即学习“PHP免费学习笔记(深入)”;
- Debian/Ubuntu 基础镜像:
apt-get update && apt-get install -y libpng-dev zlib1g-dev libjpeg-dev - Alpine 镜像:
apk add --no-cache jpeg-dev zlib-dev libpng-dev - 装完再运行:
docker-php-ext-configure gd --with-jpeg-dir=/usr/include/ && docker-php-ext-install gd
多阶段构建才是生产级做法
单阶段镜像容易臃肿、残留 root 权限、带入编译工具(如 gcc),不满足云原生安全要求。
推荐结构:
-
构建阶段:用
php:8.5.5-cli-slim+ Composer 安装依赖,生成vendor/ -
运行阶段:用
php:8.5.5-fpm-alpine,仅COPY --from=builder /app/vendor /app/vendor - 运行阶段必须加:
RUN adduser -u 1001 -D -s /bin/sh www && USER www,禁止 root 运行 FPM - 禁用非必要扩展:
docker-php-ext-disable opcache xdebug(生产环境不用调试器)
配合 Nginx 使用时注意 FastCGI 路径
PHP-FPM 默认监听 127.0.0.1:9000 或 Unix socket,Nginx 配置中要明确指定:
- 如果用 TCP:
fastcgi_pass php:9000;(docker-compose 中服务名需为php) - 如果用 socket:
fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;,需在 PHP 容器中挂载并确保权限一致 - 务必在
www.conf中启用状态页:pm.status_path = /status,方便健康检查



















