用Docker快速搭建PHP开发环境的核心是复用php:8.2-apache等成熟镜像并用docker-compose.yml编排服务,挂载代码、配置数据库依赖、映射端口,执行docker-compose up -d即可运行phpinfo()验证。

用 Docker 快速搭 PHP 开发环境,核心是跳过手动装 Apache/Nginx、PHP、MySQL 的繁琐步骤,靠几个配置文件 + 一条命令启动整套服务。重点不在“从零写 Dockerfile”,而在复用成熟镜像、合理编排容器关系。
选对基础镜像,别自己编译 PHP
官方 php:8.2-apache 或 php:8.2-cli 镜像已预装常见扩展(如 pdo_mysql、gd、mbstring),直接可用。开发阶段优先选带 Apache 的版本,开箱即用;若搭配 Nginx,用 cli 版本配合单独的 nginx 容器更灵活。
示例:
FROM php:8.2-apache
RUN docker-php-ext-install pdo_mysql mysqli mbstring
用 docker-compose.yml 一键拉起全栈环境
把 Web 服务、数据库、缓存等写进一个 YAML 文件,避免逐个 run 容器。关键点:
- PHP 容器挂载本地代码目录(如 ./src:/var/www/html),改代码实时生效
- MySQL 容器设置 ROOT_PASSWORD 和初始化 SQL(通过 volumes 挂载 .sql 文件)
- 加 depends_on 确保 MySQL 先启动,再启动 PHP
- 暴露端口:Apache 默认映射 8080:80,避免和宿主机冲突
快速验证是否跑通
写个简单的 index.php 放在代码目录里:
立即学习“PHP免费学习笔记(深入)”;
执行 docker-compose up -d,然后浏览器访问 http://localhost:8080。看到 PHP 信息页,说明 Web 服务正常;再连 MySQL(用 phpMyAdmin 或 mysql 命令行工具),确认数据库可访问。
开发中常用操作小贴士
不重启容器也能高效调试:
- 进 PHP 容器执行命令:docker-compose exec php bash
- 重装扩展(比如加 redis):docker-compose exec php docker-php-ext-install redis,再重启 php 容器
- 查看日志:docker-compose logs -f php 或 mysql
- 停全部服务:docker-compose down;清空数据卷加 -v
不复杂但容易忽略:每次换项目记得检查 composer install 是否在容器内运行,而不是宿主机——否则 vendor 权限或扩展依赖可能出错。


















