2017-07-18 55 views
0

我无法找到任何适当的方式打开调试模式Laravel 5.4生产只为管理员。为管理员生产调试laravel

我有一个应用程序,我正在整个生产环境中进行调试,所以我需要调试模式,这将只为我看到。

可以设置APP_DEBUG=true而不是APP_DEBUG=false,它在.env - 在生产中?或者其他方式?

+0

你如何区分你的管理和其他领域? –

+0

这个程序不需要登录,所以没有Auth逻辑。所以任何方式都不错,它可以识别我作为管理员 - 会话,cookie,获取参数,IP地址... – Gediminas

回答

3

技术上的不可能认证来之后方式laravel本身(特别是app.php)中定义的,所以你不能写类似

if (isAdmin) { debug = true' }

但是,你所能做的就是在config/app.php你可以定义像这样的调试,并把你的ip(确保你没有使用它在staging /本地,因为你调试也会在这些情况下返回false)

'debug' => env('APP_DEBUG', $_SERVER['REMOTE_ADDR'] == 'your.ip.address' ? true : false) 

删除APP_DEBUG生产线.env文件。当没有价值时,它将从这种情况中获得。把它放在local上按照你的意愿设置它。

所以,如果是你的ip调试将是真实的,否则为false。

,但是我要说最安全,最优雅的方式将

1)中的经认证的路由存储日志。您获得的每个错误都将显示在日志文件中的特定路线下。 但仍不会立即。实际上,你可以使用包这样一个 https://github.com/rap2hpoutre/laravel-log-viewer

2)使用服务为哨兵和电子邮件的每个错误自己或用自己的面板

+0

你是天才!这是我的第一个真正起作用的方法。为了使它完美工作,也许有可能检查或环境是本地的,然后设置为真,如果生产,然后检查IP是真实的,否则是错误的? – Gediminas

+0

你可以做到这一点 –

+0

哦,我刚刚意识到我不需要这样做,因为我可以删除production .env上的APP_DEBUG值,所以它只会从config/app.php条件中获取。谢谢! – Gediminas