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

Laravel开启APP_DEBUG为true后不显示错误仅展示Nginx 404页面如何修复

Laravel 8 开启APP_DEBUG后仍显示Nginx 404而非错误页修复方案

1. 修正Nginx站点配置(首要排查项)

该问题90%以上是因为Nginx没有把不存在路径的请求转发给Laravel入口文件处理,直接返回了默认404。需要调整站点配置如下:

  • 站点根目录必须指向Laravel项目的public文件夹,示例:
    root /www/wwwroot/your_project/public;
    
  • 在location /配置块中添加try_files规则,将所有静态资源不存在的请求转发给index.php处理:
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
  • 确认.php后缀解析配置正确,所有PHP请求会转发给PHP-FPM进程处理。

配置修改完成后执行nginx -t验证语法,无误后执行systemctl reload nginx重载配置生效。

2. 修复Laravel目录权限

Laravel的storage和bootstrap/cache目录需要赋予web服务运行用户读写权限,权限不足会导致框架无法渲染错误页,触发上层Nginx错误:

# 替换www-data为你实际的Nginx运行用户,CentOS默认是apache
chown -R www-data:www-data storage bootstrap/cache
chmod -R 755 storage bootstrap/cache

3. 清理Laravel配置缓存

修改.env后如果之前生成过配置缓存,新的APP_DEBUG配置不会生效,执行以下命令清理缓存:

php artisan config:clear

如果要验证配置是否生效,可以临时在路由文件中添加如下测试代码:

Route::get('/debug-test', function () {
    dd(config('app.debug'));
});

访问/debug-test如果返回true说明配置已生效,返回false则需要检查.env中是否拼写错误,APP_DEBUG值不要加引号,前后不要留空格。

4. 确认APP_KEY已生成

如果.env中APP_KEY为空,Laravel会抛出500错误,Nginx配置错误时也会返回404,执行以下命令生成密钥:

php artisan key:generate

执行后清理一次配置缓存即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 01:24:04