用 docker 一键部署 php 环境的核心是通过 docker-compose.yml 编排 nginx、php-fpm、mysql 服务,安装 docker 和 compose 后,创建配置文件并执行 docker-compose up -d 即可启动完整环境。

用 Docker 一键部署 PHP 环境,核心不是写一堆命令,而是用 docker-compose.yml 把 Nginx、PHP-FPM、MySQL 这几个服务“编排”好,一次启动全部跑起来。不需要手动装 Apache、配 php.ini、改 MySQL 密码,所有配置都写进文件,复制就能用。
准备基础:装好 Docker 和 Docker Compose
这是唯一必须提前搞定的两件事:
- Windows/mac 用户直接下载安装 Docker Desktop(含 Compose),安装完重启即可;
- CentOS/Ubuntu 服务器执行三行命令(国内源加速):
yum install -y yum-utils && yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum install -y docker-ce docker-ce-cli containerd.io
然后systemctl start docker && systemctl enable docker; - 验证:运行
docker --version和docker-compose --version,都显示版本号即成功。
用 docker-compose.yml 一键拉起整套环境
新建一个空文件夹,比如 myphp-app,在里面创建 docker-compose.yml,内容如下(已适配 PHP 8.4 + Nginx + MySQL 8.0,开箱即用):
version: '3.8'
services:
nginx:
image: nginx:1.27-alpine
ports: ["80:80"]
volumes:
- ./src:/var/www/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on: [php]
<p>php:
image: php:8.4-fpm
volumes:</p>
- ./src:/var/www/html
- ./php.ini:/usr/local/etc/php/php.ini environment:
- PHP_IDE_CONFIG=serverName=myphp
mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root123 MYSQL_DATABASE: testdb MYSQL_USER: app MYSQL_PASSWORD: app123 volumes:
- mysqldata:/var/lib/mysql
volumes: mysqldata:
说明:
• ./src 放你的 PHP 代码(如 index.php);
• ./nginx.conf 是最小化 Nginx 配置(转发 PHP 请求到 php:9000);
• ./php.ini 可选,用来调 upload_max_filesize 或 date.timezone;
• 所有服务自动在同一个默认网络互通,PHP 里连 MySQL 直接写 host=mysql。
启动只需一条命令
确保你在 myphp-app 目录下,执行:
docker-compose up -d
几秒后,打开浏览器访问 http://localhost,就能看到你的 index.php。整个环境已就绪:
- Nginx 处理 HTTP 请求,把
.php文件转给 PHP-FPM; - PHP 容器已预装
pdo_mysql、gd、opcache等常用扩展; - MySQL 数据自动持久化到
mysqldata卷,删容器也不丢数据。
后续维护很简单
环境跑起来后,日常操作基本就这三类:
-
改代码:直接编辑
./src/下的文件,实时生效(无需重启); -
调配置:改
nginx.conf或php.ini后,执行docker-compose restart nginx php; -
停/清环境:
docker-compose down停服务,加-v参数可连卷一起删(慎用)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











