如何在laravel 4上显示错误?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在laravel 4上显示错误?相关的知识,希望对你有一定的参考价值。

我正在尝试在Laravel 4 beta上创建一个应用程序,但我无法调试它,因为它没有显示任何错误,display_errors打开,error_reportingE_ALLdebug => trueconfig/app.php)。当我尝试在public/index.php上执行错误时,它会显示一个解析错误,但是当我在路由器上执行此操作时,它只显示一个空白页面(白屏死机)。我怎样才能解决这个问题?

谢谢

答案

@Matanya - 你看过你的服务器日志,看看错误500究竟是什么?它可以是任何数量的东西

@Aladin - 白色死亡屏幕(WSOD)可以通过Laravel 4以三种方式诊断出来。

选项1:转到Laravel日志(app / storage / logs)并查看错误是否包含在那里。

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

选项3:良好的旧调试技巧 - 在路径文件的开头添加一个die('hello')命令 - 然后继续将它更深入地移动到您的应用程序中,直到您不再看到'hello'消息。使用此功能,您将能够缩小导致WSOD的路线并解决问题。

另一答案

只是去你的app/storage/logs那里有error的日志。转到今天的日期时间文件名,您将在应用程序中找到最新的error

要么

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

'debug' => false,

'debug' => true, 

要么

转到qazxsw poi文件到您的应用程序并更改配置

.env
另一答案

安装新的laravel实例后,我遇到了白屏问题。我在日志中找不到任何东西,因为(最终我发现)白屏的原因是app / storage不可写。

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

try {
    $app->run();
} catch(Exception $e) {
    echo "<pre>";
    echo $e;
    echo "</pre>";
}

之后很容易解决问题。

另一答案

转到app / config / app.php

并设置'debug'=> true,

另一答案

按照@The Shift Exchange的好建议,我查看了error_log并确实设法解决了问题。它只是一个权限问题:

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
Stack trace:
#0 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php(77): Monolog\Handler\StreamHandler->write(Array)
#1 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37): Monolog\Handler\RotatingFileHandler->write(Array)
#2 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(217): Monolog\Handler\AbstractProcessingHandler->handle(Array)
#3 /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Logger.php(281): Monolog\Logger->addRecord(400, Object(ErrorException), Array)
#4 [internal function]: Monolog\Logger->addError(Object(ErrorException))
#5 /Users/matanya/Sites/in in /Users/matanya/Sites/indgo/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php on line 71

一旦我使用chmod应用不那么严格的权限,所有都恢复正常。

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

另一答案

在配置文件夹里面打开app.php

更改

'debug' => false,

'debug' => true, 
另一答案

在Laravel根文件夹chmod中将存储目录改为777

另一答案

也许这次没有在Laravel 4上,但是在L5.2上我有类似的问题:

我只是将storage/logs目录的所有权更改为www-data

# chown -R www-data:www-data logs

PS:这是在Ubuntu 15和apache上。

我的logs目录现在看起来像:

drwxrwxr-x  2 www-data   www-data 4096 jaan  23 09:39 logs/
另一答案

https://github.com/loic-sharma/profiler这是替代laravel3调试栏的好例子。

另一答案

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

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

就我而言,我忘了启动mysql。 顺便说一下,在终端通常是mysql.server start

以上是关于如何在laravel 4上显示错误?的主要内容,如果未能解决你的问题,请参考以下文章

需要一种有效的方法来避免使用 Laravel 5 重复代码片段

如何在laravel 4显示错误

在 laravel 4 中显示错误

Laravel 4 - 如何获得有意义的错误

如何根据输入请求规则在 laravel 刀片中显示错误消息

Laravel 5.4,AJAX 应该不会出错