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
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 22

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年前 评论

在 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年前 评论

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