必须将app_debug=true设在.env中并执行php artisan config:clear,否则laravel会静默吞掉堆栈仅显示“whoops”;还需确认ignition已安装、权限正确且/_ignition/health-check返回200。

必须把 APP_DEBUG=true 打开,否则 Laravel 会主动吞掉堆栈信息,只留一个“500 Server Error”或空白页。
为什么页面只显示“Whoops, something went wrong”却没堆栈?
这是 Laravel 在 APP_DEBUG=false 时的默认行为——它不报错,而是“礼貌性静音”。哪怕你本地开发,只要 .env 里这行没设对,或者缓存没清,就永远看不到真实异常。
-
APP_DEBUG=true必须存在于.env文件中(不是config/app.php) - 改完
.env后,一定要运行php artisan config:clear;config:cache会锁死旧配置,导致修改无效 - 如果用了 Docker 或 Nginx,确认 PHP 进程用户(如
www-data)能读取.env文件(权限至少是 644)
开了 APP_DEBUG=true 还是没看到彩色错误页?
常见原因是 Ignition(Laravel 7+ 默认错误页面)被禁用或加载失败。检查是否误删了 vendor/facade/ignition,或在 config/app.php 中注释了 Facade\Ignition\IgnitionServiceProvider::class。
- 运行
composer show facade/ignition确认包已安装 - 若使用 Laravel 9+,确保未手动替换为
filp/whoops且未正确注册 - 浏览器控制台里看 Network 标签,确认
/_ignition/health-check返回 200;失败说明前端资源加载异常
错误页有堆栈但太长,怎么快速定位第一处问题?
别从头往下读。真实错误几乎总在堆栈最顶部的 “at /path/to/file.php:123” 行,下面全是调用链。
- 重点盯住第一个
Call to undefined method、Class not found、Undefined index这类提示 - 如果堆栈里出现
vendor/laravel/framework/src/Illuminate/...,说明问题不在你的代码,而是配置或扩展冲突(比如中间件里用了未定义的门面) - 复制那一行完整错误(含文件路径和行号),直接在 VSCode 里
Cmd+P/Ctrl+P跳转过去,比读日志快得多
真正卡住排查的,往往不是看不懂错误,而是错误根本没出来——所以每次新建项目或部署后,第一件事不是写代码,而是跑一遍 php artisan tinker 和访问一个路由,确认 APP_DEBUG=true + config:clear 已生效。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











