Laravel 报错500之类错误时,但是不显示错误信息,出现空白页面
项目环境:
- Nginx 1.18.0
- php 7.3
- Ubuntu 20.04.1 LTS(Py3.7.8)
- Laravel 6.*
使用的是宝塔面板,我故意输错路由地址让它出现500页面,如图:

同时打印出 GET http://shop.test/ 500 (Internal Server Error), 如图:

不出现具体报错信息,只有空白页面,什么 Laravel 的调式模式还是 PHP 的调式模式都已经打开了。项目文件权限全都改成了777还是一样,伪静态也配置了。我发现只有没有加载 css 文件和 js 文件,不知道是不是这个问题。
关于 LearnKu
tail -f storages/log/laravel.log
是不是捕获异常后,又抛出了异常?
@osang 错误日志确实已经写入了,但是不出现友好的页面还是比较难受的,我总不能每次报错,每次都要再去命令行 cat 一下吧
@jcc123 应该不会把,我新装的框架,只改动了
web.php,或者我删除分号这种语法错误,也不显示错误页面还是空白页面debug配置问题?
@ruke 什么 debug 问题,详细说一说?是指的的
.env里面的APP_DEBUG选项?@sakura10032 应该不是这个问题。就算关了也会有页面
APP_DEBUG=true 在运行 php artisan optimize 试试@youxx 用这个方法确实是可以显示出错误
@ruke 关了确实有页面,也确实显示出来了。只有 500 的页面,不是错误详情的那种
这个的原因好像是环境问题,如果是用的是PHPstudy的话,并且是以前版本的PHPstudy的话,就会出现这个问题,解决方法是用小皮面板,就会显示错误页面
老哥你解决了吗?我只在wsl上面遇见和你一模一样的问题。我感觉是环境问题。php报错日志都有,但是有错误页面显示不出来。我在线上一点问题都没有。

我WSL也是这个问题,没怎么去研究,看上去感觉错误页面的内容返回时出问题了
重装了php环境正常了。
在 nginx.conf 的 http 节点添加:
重启nginx,完美解决!!
参考:github.com/Microsoft/WSL/issues/21...
原因在于使用 phpstudy 安装的 nginx 的配置文件有这一行
响应 500 错误后会自动重定向到 /error/500.html。而你的项目下是没有这个文件的。 只要注释掉这一行即可。