Laravel 报错500之类错误时,但是不显示错误信息,出现空白页面

项目环境:

  • Nginx 1.18.0
  • php 7.3
  • Ubuntu 20.04.1 LTS(Py3.7.8)
  • Laravel 6.*

使用的是宝塔面板,我故意输错路由地址让它出现500页面,如图:

laravel 报错500之类错误时,但是不显示错误信息,出现空白页面

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

laravel 报错500之类错误时,但是不显示错误信息,出现空白页面

不出现具体报错信息,只有空白页面,什么 Laravel 的调式模式还是 PHP 的调式模式都已经打开了。项目文件权限全都改成了777还是一样,伪静态也配置了。我发现只有没有加载 css 文件和 js 文件,不知道是不是这个问题。

Sakura10032
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 22

在 nginx.conf 的 http 节点添加:

fastcgi_buffer_size 1024k;
fastcgi_buffers 16 256k;
fastcgi_busy_buffers_size 2048k;
fastcgi_temp_file_write_size 4096k;
fastcgi_buffering off;

重启nginx,完美解决!!
参考:github.com/Microsoft/WSL/issues/21...

2年前 评论

原因在于使用 phpstudy 安装的 nginx 的配置文件有这一行

http {
     error_page 500 /error/500.html;
}

响应 500 错误后会自动重定向到 /error/500.html。而你的项目下是没有这个文件的。 只要注释掉这一行即可。

2年前 评论

tail -f storages/log/laravel.log

3年前 评论
jcc123

是不是捕获异常后,又抛出了异常?

3年前 评论

@osang 错误日志确实已经写入了,但是不出现友好的页面还是比较难受的,我总不能每次报错,每次都要再去命令行 cat 一下吧

3年前 评论

@jcc123 应该不会把,我新装的框架,只改动了 web.php ,或者我删除分号这种语法错误,也不显示错误页面还是空白页面

3年前 评论
ruke

debug配置问题?

3年前 评论

@ruke 什么 debug 问题,详细说一说?是指的的 .env 里面的 APP_DEBUG 选项?

3年前 评论
ruke

@sakura10032 应该不是这个问题。就算关了也会有页面

3年前 评论

APP_DEBUG=true 在运行 php artisan optimize 试试

3年前 评论

@youxx 用这个方法确实是可以显示出错误

file

3年前 评论
喝卵形 3年前
sakura10032 (作者) (楼主) 3年前
sakura10032 (作者) (楼主) 3年前
sakura10032 (作者) (楼主) 3年前

@ruke 关了确实有页面,也确实显示出来了。只有 500 的页面,不是错误详情的那种

3年前 评论

这个的原因好像是环境问题,如果是用的是PHPstudy的话,并且是以前版本的PHPstudy的话,就会出现这个问题,解决方法是用小皮面板,就会显示错误页面

3年前 评论

老哥你解决了吗?我只在wsl上面遇见和你一模一样的问题。我感觉是环境问题。php报错日志都有,但是有错误页面显示不出来。我在线上一点问题都没有。
file

Laravel

3年前 评论
sakura10032 (楼主) 3年前
Constantine (作者) 3年前

我WSL也是这个问题,没怎么去研究,看上去感觉错误页面的内容返回时出问题了

3年前 评论

重装了php环境正常了。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!