You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署PHP项目遇Nginx默认页面问题求助

解决Nginx与PHP项目文件映射的Docker配置问题

首先先回答你关心的结构问题:你的项目结构是合理的!根目录放Docker相关配置文件,application单独存业务代码,这种分离方式很清晰,后续维护Docker配置和业务代码都很方便。

接下来说说为什么会显示Nginx默认页——核心问题是Nginx没有指向你的application项目目录,而且PHP项目还需要Nginx和PHP-FPM容器联动才能解析PHP文件,光靠Nginx本身是跑不了PHP的。我给你一套完整的解决方案:

第一步:调整项目结构(新增Nginx配置目录)

先在项目根目录新建nginx/conf.d文件夹,用来存放自定义的Nginx站点配置,最终结构如下:

你的项目根目录/
├── docker-compose.yml
├── application/(你的PHP代码)
└── nginx/
    └── conf.d/
        └── default.conf

第二步:编写自定义Nginx配置

在nginx/conf.d/default.conf里写入以下内容,配置Nginx的根目录和PHP解析规则:

server {
    listen 80;
    server_name localhost;
    # 指向Nginx容器内的项目代码目录
    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    # 处理静态文件和路由重写
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 配置PHP解析,转发请求到PHP-FPM容器
    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        # 这里的路径要和PHP容器内的项目映射路径一致
        fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
        include fastcgi_params;
    }
}

第三步:完善docker-compose.yml配置

替换你现有的docker-compose.yml为以下内容,重点做好目录映射和服务联动:

version: '3.3'
services:
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      # 把本地的application目录映射到Nginx容器的站点根目录
      - ./application:/usr/share/nginx/html
      # 用自定义配置覆盖Nginx默认的站点配置
      - ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
    # 确保PHP服务先启动,Nginx才能正常转发请求
    depends_on:
      - php

  php:
    # 选择和你的项目兼容的PHP-FPM版本,比如7.4-fpm-alpine(轻量镜像)
    image: php:7.4-fpm-alpine
    volumes:
      # 把本地application目录映射到PHP容器的工作目录
      - ./application:/var/www/html

第四步:重新启动容器

先停止之前运行的容器(避免残留配置),再启动新容器:

docker-compose down
docker-compose up -d

现在访问localhost应该就能看到你的PHP项目内容了!

为啥之前显示默认页?

你之前的配置大概率没做这两件事:

  1. 没有把application目录正确映射到Nginx容器的站点根目录,导致Nginx还是用自带的默认欢迎页文件
  2. 没有覆盖Nginx的默认配置,默认配置里的根目录指向的是Nginx官方镜像自带的测试页面,而非你的项目代码

内容的提问来源于stack exchange,提问作者andershagbard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:43:01