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

Nginx无法找到index.php始终返回404 Not Found,配置问题求助

Nginx访问index.php返回404的常见原因及解决方法

1. 路径与权限类问题

  • 确认站点根目录文件存在:执行命令 ls -l /var/www/ilias/index.php,检查对应路径下确实存在index.php文件。
  • 修正目录权限:Nginx默认运行用户为www-data,需要持有站点目录的读取权限,执行以下命令修正权限:
chown -R www-data:www-data /var/www/ilias
chmod -R 755 /var/www/ilias
  • 匹配域名与server_name规则:如果你是直接用IP访问服务,当前配置的server_name仅匹配example.com和www.example.com,请求会走Nginx默认server块,根目录不一致就会返回404。测试阶段可以把监听规则改成listen 80 default_server; listen [::]:80 default_server;,让该配置作为默认规则生效。

2. PHP-FPM相关配置问题

  • 确认PHP版本与sock路径匹配:执行命令 ls /var/run/php/ 查看实际存在的fpm sock文件名,如果你安装的PHP版本不是7.2,把fastcgi_pass参数里的sock路径改成对应版本即可。
  • 确认PHP-FPM服务正常运行:执行命令 systemctl status php7.2-fpm 查看服务状态,未启动则执行 systemctl start php7.2-fpm 启动,加 systemctl enable php7.2-fpm 可设置开机自启。
  • 修复FastCGI参数冲突:你同时引入了snippets/fastcgi-php.conf和fastcgi_params,多数系统的这两个文件存在SCRIPT_FILENAME参数重复定义的问题,会导致PHP找不到执行文件返回404,可调整PHP匹配块的配置如下:
location ~ \.php$ {
     # 手动指定脚本执行路径优先级最高,避免参数冲突
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     include snippets/fastcgi-php.conf;
     fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
     # 删掉重复的 include fastcgi_params; 避免参数覆盖
     fastcgi_intercept_errors on;
}

3. 配置生效与日志排查

修改完配置后必须执行 nginx -t 检查语法是否正确,返回success后执行 systemctl reload nginx 重载配置生效。如果仍然返回404,直接查看你配置中指定的错误日志 /var/log/nginx/ilias.error.log,日志会明确标注404的具体触发原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:27:03