Debugging 如何在laravel 4上显示错误?

Debugging 如何在laravel 4上显示错误?,debugging,laravel,error-reporting,laravel-4,Debugging,Laravel,Error Reporting,Laravel 4,我正在尝试在Laravel 4 beta版上创建一个应用程序,但我无法调试它,因为它没有显示任何错误,display_errors处于启用状态,error_reporting是E_ALL和debug=>true(config/app.php)。当我试图在public/index.php上出错时,它会显示一个解析错误,但当我在路由器上出错时,它只会显示一个空白页(死亡的白屏)。我怎样才能解决这个问题 感谢您遵照@the Shift Exchange的建议,我查看了错误日志,并确实设法解决了问题。这

我正在尝试在Laravel 4 beta版上创建一个应用程序,但我无法调试它,因为它没有显示任何错误,
display_errors
处于启用状态,
error_reporting
E_ALL
debug=>true
config/app.php
)。当我试图在
public/index.php
上出错时,它会显示一个解析错误,但当我在路由器上出错时,它只会显示一个空白页(死亡的白屏)。我怎样才能解决这个问题


感谢您

遵照@the Shift Exchange的建议,我查看了错误日志,并确实设法解决了问题。这只是一个权限问题:

Tue Feb 26 11:22:20 2013] [error] [client 127.0.0.1] PHP Fatal error:  Uncaught exception 'UnexpectedValueException' with message 'The stream or file "/Users/matanya/Sites/indgo/app/start/../storage/logs/log-apache2handler-2013-02-26.txt" could not be opened: failed to open stream: Permission denied' in /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:71\nStack trace:\n#0 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(77): Monolog\\Handler\\StreamHandler->write(Array)\n#1 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\\Handler\\RotatingFileHandler->write(Array)\n#2 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(217): Monolog\\Handler\\AbstractProcessingHandler->handle(Array)\n#3 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(281): Monolog\\Logger->addRecord(400, Object(ErrorException), Array)\n#4 [internal function]: Monolog\\Logger->addError(Object(ErrorException))\n#5 /Users/matanya/Sites/in in /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 71
一旦我使用
chmod
来应用不那么严格的权限,所有这些都恢复了正常


但是,我不确定它是否回答了OP的问题,因为他得到的是一个空白屏幕,而不是一个服务器错误。

@Matanya-您是否查看了您的服务器日志以了解错误500到底是什么?它可以是任何数量的东西

@阿拉丁-白色死亡屏幕(WSOD)可以通过三种方式用拉维4诊断

选项1:转到您的Laravel日志(应用程序/存储/日志),查看其中是否包含错误

选项2:转到PHP服务器日志,查找导致WSOD的PHP错误


选项3:良好的旧调试技巧-在路由文件的开头添加一个die(“hello”)命令-然后继续将其移动到应用程序中越来越深,直到不再看到“hello”消息。使用此选项,您将能够缩小导致WSOD的范围并修复问题。

这是替代laravel3调试栏的一个很好的示例。

安装新的laravel实例后,我遇到了白屏问题。我在日志中找不到任何东西,因为(最终我发现)出现白色屏幕的原因是应用程序/存储不可写

为了在屏幕上获得错误消息,我在public/index.php中添加了以下内容

try {
    $app->run();
} catch(\Exception $e) {
    echo "<pre>";
    echo $e;
    echo "</pre>";
}
试试看{
$app->run();
}捕获(\异常$e){
回声“;
echo$e;
回声“;
}
之后,问题就很容易解决了。

转到 app/config/app.php


设置'debug'=>true,

在配置文件夹中打开
app.php

'debug' => false,
改变

'debug' => true, 


在Laravel根文件夹中,将存储目录chmod到777

这一次可能不是在Laravel 4上,但在L5.2*上,我遇到了类似的问题:

我只是简单地将
存储/logs
目录的所有权更改为
www-data

drwxrwxr-x  2 www-data   www-data 4096 jaan  23 09:39 logs/
PS:这是在Ubuntu 15和apache上

我的
日志
目录现在看起来像:

try {
    $response = $kernel->handle(
        $request = Illuminate\Http\Request::capture()
    );
} catch(\Exception $e) {
    echo "<pre>";
    echo $e;
    echo "</pre>";
}

继@cw24的回答之后•从Laravel
5.4
开始,您将在
public/index.php中进行以下修改

'debug' => false,
试试看{
$response=$kernel->handle(
$request=light\Http\request::capture()
);
}捕获(\异常$e){
回声“;
echo$e;
回声“;
}
就我而言,我忘了启动MySQL。

顺便说一句,它通常是mysql.server在终端中启动
只要转到你的
应用程序/存储/日志
那里有
错误的日志
。转到今天日期时间的文件名,您将在应用程序中找到最新的
错误

打开
app/config/app.php
并更改设置

APP_LOG_LEVEL=debug

转到应用程序的
.env
文件并更改配置


您是否在本地服务器环境中运行?据我所知,在将URL转换为本地调试环境之前,Laravel仍然会检查URL中是否出现了
local
.dev
。哦,你会抛出什么样的错误/异常?你能和我们分享一下这段代码吗?也可以看到:我有一个类似的问题,只是我得到了一个通用的500服务器错误,而不是死亡屏幕。错误报告工作正常L4@Matanya-您是否查看了服务器日志以了解错误500的实际情况?它可以是任何数量的东西…很高兴它有帮助。我已经发布了一个关于其他一些tipsI的答案,但我忘记了设置应用程序/存储文件夹的权限,尽管laravel简介中清楚地说明了这一点。谢谢我一直在routes.php.的第一行看到带有die('hello')的WOSD:(我在composer.json中添加了一个“files”语句。这就是错误…我仍然不知道我做错了什么,但找到了错误。这解决了我的问题。我的链接来自:
'debug' => true, 
APP_LOG_LEVEL=debug