Php 如何在没有日志、没有信息的情况下调试Laravel错误500

Php 如何在没有日志、没有信息的情况下调试Laravel错误500,php,laravel,error-handling,Php,Laravel,Error Handling,我正在开发一个现有的Laravel应用程序,以开发新功能,但在我的计算机上安装该应用程序后,我出现了一个错误500,没有解决它的线索 在我的app.php文件中,我设置了: 'env' => env('APP_ENV', 'local'), 'debug' => env('APP_DEBUG', true), 但是我仍然没有信息,在存储/logs中没有生成日志。我不知道是什么问题 以前的开发人员是在windows上开发的,我正在Linux上工作,但我不确定这是否有意义 编辑: 我的

我正在开发一个现有的Laravel应用程序,以开发新功能,但在我的计算机上安装该应用程序后,我出现了一个错误500,没有解决它的线索

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

'env' => env('APP_ENV', 'local'),
'debug' => env('APP_DEBUG', true),
但是我仍然没有信息,在
存储/logs
中没有生成日志。我不知道是什么问题

以前的开发人员是在windows上开发的,我正在Linux上工作,但我不确定这是否有意义

编辑:

我的config/app.php中也有这些变量

'log' => env('APP_LOG', 'daily'),
'log_level' => env('APP_LOG_LEVEL', 'debug'),

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

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

以下错误类型无法使用用户定义的 功能:E_错误、E_解析、E_核心错误、E_核心警告、, E_COMPILE_错误、E_COMPILE_警告,以及在 调用set_error_handler()的文件


参考资料:

我尝试了所有方法来找出问题,比如启用错误报告来报告,比如:

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

此外,我还尝试添加自定义错误处理程序,但没有任何效果。最后,我在apache错误日志文件夹中的php错误日志文件中发现了实际问题(
Applications/MAMP/logs
as am using Mac)。

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

将行更改为:

RewriteRule ^ index.php [L]
致:

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

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

  • 启用调试模式:
    APP\u debug=true
  • 重新加载配置:
    php-artisan-config:cache

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

    通过检查apache日志

    tail -f  /usr/local/apache/logs/error_log
    
    如果您可以看到类似“…index.php可按组写入”的内容。然后更改权限

    chmod 0644 public/index.php
    

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


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

    首先,检查您的
    .env
    文件。然后在
    config/app.php
    中检查
    log\u level
    设置我在我的.env中有相同的变量config:app\u env=local app\u DEBUG=true app\u log\u level=DEBUG你检查了权限了吗?你如何处理在新的iNtalation之后抛出错误的东西…因为你已经为此得到了钱,我更改了权限,现在显示了一些错误。谢谢我将在8分钟内验证您的答案;)
    chmod 0644 public/index.php