如何调试Laravel错误500没有日志,没有信息

时间:2017-07-05 09:17:02

标签: php laravel error-handling

我正在使用现有的Laravel应用程序来开发新功能但是在我的计算机上安装应用程序之后,我有一个错误500并且没有解决它的线索。

在我的app.php文件中,我设置了:

'env' => env('APP_ENV', 'local'),
'debug' => env('APP_DEBUG', true),

但我仍然没有信息,storage/logs中没有生成日志。我不知道会出现什么问题。

以前的开发人员在Windows上,我在Linux上工作,但我不确定这是不是很有意思。

编辑:

我的config / app.php

中也有这些变量
'log' => env('APP_LOG', 'daily'),
'log_level' => env('APP_LOG_LEVEL', 'debug'),

7 个答案:

答案 0 :(得分:5)

在查看.env文件旁边,确保正确设置权限(以及手动创建storage/logs文件夹的良好做法 - 至少在导致问题的窗口上)。

答案 1 :(得分:1)

无法捕获某些PHP异常,因此Laravel无法处理它们。例如语法错误或最大内存限制错误。

  

以下错误类型无法由用户定义来处理   函数:E_ERROR,E_PARSE,E_CORE_ERROR,E_CORE_WARNING,   E_COMPILE_ERROR,E_COMPILE_WARNING和大多数E_STRICT是在   调用set_error_handler()的文件。

参考号:http://php.net/manual/en/function.set-error-handler.php

答案 2 :(得分:1)

如果您在尝试了上述所有解决方案后仍然一样,那么这里是一样的!!终于用apache log找到了解决办法。

检查apache日志

tail -f  /usr/local/apache/logs/error_log

如果你能看到类似“...index.php is writable by group”的内容。然后更改权限

chmod 0644 public/index.php

答案 3 :(得分:0)

我尽一切努力找出问题,例如启用错误报告以报告所有类似内容:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

我也尝试添加我的自定义错误处理程序,但对我没有任何帮助。所以最后我在apache错误日志文件夹(Applications/MAMP/logs使用Mac时)的php错误日志文件中找到了实际的问题。

答案 4 :(得分:0)

检查公用文件夹中的.htaccess文件! -此修补程序取决于主机!!!

将行更改为:

RewriteRule ^ index.php [L]

收件人:

RewriteRule ^ /index.php [L]

答案 5 :(得分:0)

我遇到了类似的问题(看到错误 500,但存在日志)。

为了能够直接在页面上看到错误,我做了以下改动:

  1. 启用调试模式:APP_DEBUG=true
  2. 重新加载配置:php artisan config:cache

答案 6 :(得分:0)

我遇到了这个问题,设置调试告诉我真正的问题。

对我来说,这是权限相关的,正在运行的进程没有写入日志文件的权限,当你依赖的文件告诉你问题不要箭头写入时很难调试!

>