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

Nginx访问PHP目录文件返回404问题求助(附配置文件)

解决Nginx下/rcon/index.php的404错误

我来帮你排查这个困扰了你24小时的404问题,看了你的Nginx配置,主要有几个关键点需要调整:

问题分析

  1. PHP文件的根目录未指定:你的location ~ \.php$块里没有设置root指令,Nginx不知道从哪个目录加载PHP文件,这是导致404的核心原因之一。
  2. PHP-FPM Socket路径可能有误:配置里写的是unix:/var/run/php/php7.2fpm.sock,通常PHP-FPM的socket文件名格式是phpX.X-fpm.sock(比如php7.2-fpm.sock),少了横杠可能导致无法连接到PHP处理器。
  3. try_files指令逻辑混乱:你在location /里把/rcon/index.php等路径直接写进去,这会干扰正常的路由匹配,应该让Nginx按规则自动查找文件。

解决方案

方案1:为PHP块添加根目录(推荐)

修改你的PHP处理块,添加root指令指向你的网站根目录,同时修复Socket路径:

location ~ \.php$ {
    root /home/ubuntu/staff/; # 指定PHP文件的根目录,和location /的root保持一致
    include snippets/fastcgi-php.conf;
    # 修复Socket路径的横杠
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}

同时,简化location /的try_files,只保留必要的默认路由:

location / {
    root /home/ubuntu/staff/;
    try_files $uri $uri/ /index.html;
}

方案2:为/rcon单独配置Location

如果希望/rcon路径有独立的规则,可以单独创建一个location块,专门处理这个目录下的静态文件和PHP:

location /rcon {
    root /home/ubuntu/staff/; # 确保/rcon文件夹在这个目录下
    index index.php index.html;
    try_files $uri $uri/ /rcon/index.php;

    # 嵌套处理该目录下的PHP文件
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

# 保留原有的location /、/api、/fivem配置...

后续检查步骤

  1. 确认/rcon文件夹位置:确保/home/ubuntu/staff/rcon/确实存在,并且index.php文件有正确的权限(比如www-data用户可读)。
  2. 测试Nginx配置:执行sudo nginx -t检查配置是否有语法错误。
  3. 重启Nginx:如果配置测试通过,执行sudo systemctl restart nginx生效。
  4. 检查PHP-FPM状态:确保PHP-FPM服务正在运行,执行sudo systemctl status php7.2-fpm。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:02:37