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

Docker部署Nginx后访问localhost:8000出现404错误求助

问题解决:Docker部署Nginx访问出现404错误

核心问题分析

从Nginx日志中的open() "/var/www/public404" failed错误可以看出,配置文件存在语法解析异常,导致路径拼接错误。

具体修复步骤

1. 修正Nginx配置文件的语法错误

你的Nginx配置中有两处语法问题:

  • index index.php行末尾缺少分号,导致Nginx错误解析后续指令
  • try_files $uri= 404;写法不符合Nginx语法,=和404之间需要空格

修正后的完整Nginx配置:

server {
  listen 80;
  index index.php;
  error_log /var/log/nginx/error.log;
  access_log /var/log/nginx/access.log;
  error_page 404 /index.php;
  root /var/www/public/;
  location ~\.php$ {
    try_files $uri =404;
    fastcgi_pass app:9000;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  }

  location / {
    try_files $uri $uri/ /index.php?$query_string;
    gzip_static on;
  }
}

2. 确认项目文件结构

检查宿主机的../src目录下是否存在public/index.php文件:

  • Nginx的root指向容器内的/var/www/public/,对应宿主机的../src/public/
  • 如果该文件不存在,即使配置正确也会返回404,需确保../src/public/index.php存在且内容正常

3. 重启Docker容器使配置生效

执行以下命令重启容器:

docker-compose down
docker-compose up -d --build

额外检查点

  • 确认Nginx配置文件放在了./nginx目录下(对应docker-compose中./nginx:/etc/nginx/conf.d的挂载配置),Nginx会自动加载该目录下的.conf文件
  • 检查PHP容器是否正常运行,可通过docker logs programgwithio-app查看是否有启动错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:13:21