【问题标题】:How to debug Laravel error 500 with no logs, no information如何在没有日志、没有信息的情况下调试 Laravel 错误 500
【发布时间】:2021-03-23 19:27:30
【问题描述】:

我正在开发现有的 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'),

【问题讨论】:

  • 首先,检查您的.env 文件。然后检查config/app.php中的log_level设置
  • 我的 .env 中有相同的变量配置:APP_ENV=local APP_DEBUG=true APP_LOG_LEVEL=debug
  • 你检查权限了吗?
  • 如何处理在新安装后引发错误的东西...
  • 因为你有钱

标签: php laravel error-handling


【解决方案1】:

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

【讨论】:

  • 很好,我更改了权限,现在显示一些错误。谢谢。我会在 8 分钟内验证你的答案;)
【解决方案2】:

有些 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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      我尽一切努力找出问题所在,例如启用错误报告以报告如下:

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

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

      【讨论】:

        【解决方案5】:

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

        换行:

        RewriteRule ^ index.php [L]
        

        收件人:

        RewriteRule ^ /index.php [L]
        

        【讨论】:

          【解决方案6】:

          如果您在尝试了上述所有解决方案后仍然得到相同的结果,那么这里也一样!!。终于找到了使用 apache log 的解决方案。

          检查apache日志

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

          如果您可以看到类似“...index.php 可按组写入”的内容。然后更改权限

          chmod 0644 public/index.php
          

          【讨论】:

            【解决方案7】:

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2023-04-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-11
              • 1970-01-01
              • 2021-06-03
              • 2012-10-15
              相关资源
              最近更新 更多