Laravel 5 - env本地调试true没有显示错误

时间:2014-11-28 15:56:39

标签: php debugging laravel env laravel-5

我正在尝试为我的应用启用调试,但看起来我没有任何反馈。

环境设置为本地(在.env文件中),如果我运行

php artisan env

我明白了

Current application environment: local

我本地环境的调试配置设置为true

return [

    'debug' => true,

此外,如果我在我的主配置文件(配置文件夹中的app.php)中设置了debug = true我仍然反馈说代码中有错误。

如果代码中有错误,我只有一个空页面(对于debug = false)

我错过了什么?

11 个答案:

答案 0 :(得分:77)

我在我的主机(Mac OS X)上通过chmod -R 777 storage/解决了这个问题。在我的来宾计算机上(Ubuntu 14.04)chmod -R 777 storage/实际上没有更改权限。

答案 1 :(得分:13)

php artisan optimize如果仍然无效,请删除forum topic on Laracasts

中提到的文件storage/meta/compiled.php

我遇到了同样的问题,而artisan命令就解决了这个问题。

更新

我发现解决存储文件夹相关问题的一种好方法是将www-data设置为其所有者。 我正在使用两个命令:

sudo chown $(whoami):www-data . -R

sudo chown www-data: storage -R

从Laravel 5.1开始,可能还需要在bootstrap文件夹上执行最后一个命令。

答案 2 :(得分:3)

我有一种情况,我有完全相同的症状,有些路线没有提供任何反馈,只有白页,日志中没有错误,根本没有信息。

原来,我正在添加一个新的中间件,我忘了从我的handle方法返回$next($request)。这更令人沮丧,因为这个中间件并不适用于每条路线,所以我认为有一个间歇性错误被抛出但没有在这些路线上显示。

答案 3 :(得分:3)

正如布莱尔所说,可能会发现你在中间件或“异常/处理程序”中输入了一些错误的代码。例如:

if($e->getStatusCode()===404) { ... }

而不是

if($e instanceof NotFoundHttpException) { ... }

答案 4 :(得分:1)

为了完整起见,我在使用Model::findOrFail($someId)的方法中发生错误时遇到了此问题。用Model::find($someId)替换它显示错误日志。

答案 5 :(得分:0)

如果上述答案对您不起作用,您可能需要检查可能已更改的配置文件并从那里开始调试。

在我的情况下,上述解决方案对我没有用,因为我的问题的根本原因是改变了config / app.php文件中的时区(从laravel默认UTC我改为EST5EDT)。由于某种原因,时区设置更改阻止laravel记录存储文件夹中的错误,我得到空白屏幕(没有whoops!错误消息)。我改为将时区更改为America / New_York,错误日志再次正常运行。

希望这有帮助。

答案 6 :(得分:0)

对我来说,完美的功能是在 Homestead.yaml 文件中禁用hhvm,然后我做了 vagrant reload --provision ,就是这样!

答案 7 :(得分:0)

此外,如果您刚刚安装了流明,请确保您已在主应用程序目录中将.env.example重命名为.env,因为如果您的配置仍然被命名,它将无法正常工作环境文件仍被命名为{{1 }}

答案 8 :(得分:0)

我实际上是通过取消评论来解决问题 Dotenv::load(__DIR__.'/../');中的bootstrap/app.php

因此它在编译之前实际加载并缓存它,如果你有Laravel(非流明),那么运行良好的php artisan optimize会为你做这件事

但是如果你查看他们的文档,默认情况下会被注释掉,我认为他们现在可以修复它http://lumen.laravel.com/docs/installation

答案 9 :(得分:0)

转到 config / app.php ,如果是这样的话:

  

'调试' => env(' APP_DEBUG',false),

然后改为:

  

'调试' => env(' APP_DEBUG',true),

此。

答案 10 :(得分:0)

我也遇到了同样的问题,所以我检查了exceptions文件夹的handler.php文件,其中注释了具有返回值行的渲染函数,因此页面为空白。

public function render($request, Exception $exception)
{        
    //return parent::render($request, $exception);
}