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

Windows下Docker部署PHP+NGINX+MYSQL遇配置提示及访问报错

问题修复方案

一、核心错误排查与修复

1. Nginx配置文件路径拼写错误(导致配置未生效)

你的Dockerfile_Nginix中COPY命令的目标路径少了字母x,导致配置文件无法正确放入Nginx的配置目录:

# 错误写法
COPY ./config/nginx/app.conf /etc/ngin/conf.d/app.conf

修正后:

FROM nginx:alpine

COPY ./config/nginx/app.conf /etc/nginx/conf.d/app.conf

COPY . /var/www

2. app.conf中try_files语法错误(导致异常404路径)

日志中open() "/var/www404" failed的错误,是因为try_files $uri = 404;里的空格让Nginx把= 404解析成了路径的一部分,正确写法需去掉空格:

location ~ \.php$ {
    try_files $uri =404;  # 移除=与404之间的空格
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass app:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
}

3. 项目根目录缺少入口文件(导致403 Forbidden)

日志中directory index of "/var/www/" is forbidden说明Nginx找不到默认入口文件,在项目根目录创建index.php文件,示例内容:

<?php
phpinfo();
?>

4. 关于default.conf不存在的提示

这是info级别的提示而非错误,原因是你通过volume挂载覆盖了Nginx默认的conf.d目录,原有的default.conf被替换。若要消除提示,可在./config/nginx/目录下创建一个空的default.conf文件,不处理也不影响功能。

二、验证步骤

  1. 停止并清理现有容器:docker-compose down
  2. 重新构建并启动服务:docker-compose up --build
  3. 访问http://localhost:8080,应正常显示phpinfo页面,无403/404错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:17:04