我无法找到任何正确的方法来启用Laravel 5.4
生产中仅适用于管理员的调试模式。
我有一个应用程序,我整天都在调试生产,因此我需要调试模式,只有我才能看到。
是否可以在生产中动态设置APP_DEBUG=true
而不是APP_DEBUG=false
.env
?还是其他任何方式?
答案 0 :(得分:8)
从技术上来说, laravel 本身(尤其是 app.php )定义后,身份验证就不可能了,所以你不能写像
if (isAdmin) {
debug = true'
}
但你可以做的是config/app.php
你可以像这样定义调试并放入你的ip(确保你没有在staging / local中使用它,因为你调试在那些情况下也会返回false)
'debug' => env('APP_DEBUG', $_SERVER['REMOTE_ADDR'] == 'your.ip.address' ? true : false)
从生产APP_DEBUG
文件中删除.env
行。当没有价值时,将从这种情况中获取。将其保留在local
以根据需要进行设置。
因此,如果是你的ip调试将为true,否则为false。
但我会说最安全和优雅的方式是
1)将日志存储在经过身份验证的路由中。您获得的每个错误都将显示在特定路径下,如日志文件中所示。 但它仍然不会是即时的。你可以实际使用像这样的包 https://github.com/rap2hpoutre/laravel-log-viewer
2)使用服务作为哨兵并自己发送电子邮件或使用他们自己的面板
答案 1 :(得分:0)
在config/app.php
'debug' => isset($_GET['debug']) ? true : false,
它将忽略.env调试参数 即。 example.com/?debug