如何配置Windows上PHP与Docker Compose的详细步骤?

首先安装Docker Desktop并确保其正常运行,接着创建项目目录结构,编写包含PHP-FPM和Nginx服务的docker-compose.yml文件,配置nginx.conf以正确转发PHP请求,最后启动容器并在浏览器访问localhost/info.php验证PHP解析成功。

如果您尝试在Windows系统上配置PHP开发环境,并希望通过Docker Compose实现服务的快速部署与管理,则需要正确设置相关组件并编写合适的配置文件。以下是完成该任务的具体步骤:

一、安装Docker Desktop

Docker Desktop是Windows平台上运行Docker的核心工具,它集成了Docker Engine、Compose以及Kubernetes支持,确保PHP容器化环境可以顺利运行。

1、访问Docker官网下载Docker Desktop for Windows安装程序。

2、双击安装包并按照提示完成安装流程,确保启用WSL 2功能(如果系统提示)。

3、安装完成后启动Docker Desktop,等待其状态显示为“Running”。

必须确认Docker服务已正常运行,否则后续命令将无法执行

、创建项目目录结构

合理的目录结构有助于分离代码与配置文件,便于维护和扩展PHP应用及其依赖服务。

1、在磁盘中新建一个项目文件夹,例如C:\php-docker-project

2、在该目录下创建www子目录用于存放PHP代码文件。

3、在根目录下创建docker-compose.yml文件,作为服务编排配置文件。

三、编写Docker Compose配置文件

通过docker-compose.yml定义PHP-FPM服务和Nginx反向代理服务,实现动态请求处理与静态资源分发。

1、使用文本编辑器打开docker-compose.yml文件。

2、输入以下内容以定义两个服务:

version: '3'

services:

  php:

    image: php:8.2-fpm

    container_name: php-container

    volumes:

      - ./www:/var/www/html

  nginx:

    image: nginx:latest

    container_name: nginx-container

    ports:

      - "80:80"

    volumes:

      - ./www:/var/www/html

      - ./nginx.conf:/etc/nginx/nginx.conf

    depends_on:

      - php

注意映射路径格式应使用正斜杠或双反斜杠避免Windows路径解析错误

四、配置Nginx服务器

Nginx负责接收HTTP请求并将.php文件转发给PHP-FPM处理,需自定义配置文件来指定fastcgi参数。

1、在项目根目录创建名为nginx.conf的文件。

2、添加如下基本配置内容:

events { worker_connections 1024; }

http {

  include mime.types;

  default_type application/octet-stream;

  server {

    listen 80;

    root /var/www/html;

    index index.php index.html;

    location ~ \.php$ {

      fastcgi_pass php:9000;

      fastcgi_index index.php;

      fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;

      include fastcgi_params;

    }

  }

}

确保fastcgi_pass指向的服务名称与docker-compose中定义的PHP服务名一致

五、启动容器并测试PHP解析

通过Docker Compose命令启动所有服务,并验证PHP是否被正确解析。

1、打开命令提示符或PowerShell,进入项目所在目录。

2、运行命令 docker-compose up -d 启动容器后台运行。

3、在www目录内创建info.php文件,内容为

4、打开浏览器访问 https://www./link/31bd2c1425f9766a5081c75efff468bd。

若页面显示PHP信息表格,则表示配置成功