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_
相关产品推荐
相关产品推荐

