使用Docker搭建PHP环境可以避免本地环境依赖冲突,实现项目环境的快速迁移和复用,下面我们一步步完成整个配置过程。

一、准备工作
首先确保本地已经安装Docker,可通过以下命令验证安装是否成功:
docker --version # 输出类似 Docker version 24.0.6, build ed223bc 说明安装成功
二、拉取PHP官方镜像
Docker Hub提供了官方维护的PHP镜像,我们可以根据需要选择对应的版本,这里以PHP 8.2为例:
# 拉取PHP 8.2的CLI版本镜像,如果需要FPM版本可以替换为php:8.2-fpm docker pull php:8.2-cli
拉取完成后可以通过以下命令查看本地镜像:
docker images | grep php
三、创建并运行PHP容器
我们可以通过docker run命令直接创建并启动PHP容器,同时挂载本地项目目录到容器中,方便代码同步:
# 创建并启动PHP容器,参数说明: # -d 后台运行容器 # --name 指定容器名称为php_env # -v 挂载本地目录到容器目录,这里将当前目录下的php_project挂载到容器的/var/www/html # -p 映射端口,这里将容器的9000端口映射到本地9000端口(FPM版本常用) # php:8.2-cli 使用的镜像名称 docker run -d --name php_env -v $(pwd)/php_project:/var/www/html -p 9000:9000 php:8.2-cli
如果是需要配合Nginx使用的FPM版本,拉取php:8.2-fpm镜像后,运行命令调整为:
docker run -d --name php_fpm -v $(pwd)/php_project:/var/www/html -p 9000:9000 php:8.2-fpm
四、安装PHP常用扩展
官方PHP镜像默认只安装了基础扩展,我们可以通过docker exec进入容器后手动安装需要的扩展,以安装pdo_mysql、gd、curl扩展为例:
# 进入运行中的PHP容器 docker exec -it php_env /bin/bash # 更新软件源 apt-get update # 安装pdo_mysql扩展 docker-php-ext-install pdo_mysql # 安装gd扩展,需要先安装依赖 apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev docker-php-ext-configure gd --with-freetype --with-jpeg docker-php-ext-install gd # 安装curl扩展 apt-get install -y libcurl4-openssl-dev docker-php-ext-install curl # 退出容器 exit
扩展安装完成后可以重启容器让配置生效:
docker restart php_env
五、验证PHP环境
在本地挂载的php_project目录下创建index.php文件,内容如下:
<?php
// 输出PHP版本信息
echo "当前PHP版本:" . phpversion() . "<br/>";
// 查看已安装的扩展
echo "已安装扩展:" . implode(", ", get_loaded_extensions());
?>
如果是CLI版本的容器,可以通过以下命令执行脚本验证:
docker exec php_env php /var/www/html/index.php
如果是FPM版本配合Nginx使用,还需要启动Nginx容器并配置转发到PHP-FPM,Nginx配置示例如下:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.php;
location ~ .php$ {
fastcgi_pass php_fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
六、容器常用管理命令
日常使用中常用的容器管理命令如下:
- 查看运行中的容器:
docker ps - 查看所有容器(包括停止的):
docker ps -a - 停止容器:
docker stop php_env - 启动容器:
docker start php_env - 删除容器:
docker rm php_env - 查看容器日志:
docker logs php_env
七、使用Docker Compose简化配置
如果每次都手动执行docker run命令比较繁琐,可以使用Docker Compose来管理多容器服务,创建docker-compose.yml文件内容如下:
version: '3'
services:
php:
image: php:8.2-fpm
container_name: php_env
volumes:
- ./php_project:/var/www/html
ports:
- "9000:9000"
nginx:
image: nginx:latest
container_name: nginx_env
volumes:
- ./php_project:/var/www/html
- ./nginx_conf:/etc/nginx/conf.d
ports:
- "80:80"
depends_on:
- php
在docker-compose.yml所在目录执行以下命令即可一键启动所有服务:
docker-compose up -d
DockerPHP容器配置php_docker修改时间:2026-07-14 17:48:31