Laravel 4 使用getenev()在fortrabbit中设置laravel 4环境

Laravel 4 使用getenev()在fortrabbit中设置laravel 4环境,laravel-4,env,fortrabbit,Laravel 4,Env,Fortrabbit,您好,我将基于laravel 4的应用程序部署到fortrabbit。我尝试设置本地和生产环境 在bootstrap/start.phpI中修改 $env = $app->detectEnvironment(function () { return getenv('LARAVEL_ENV') ?: 'local'; }); 关于fortrabbit,我定义了env_var 拉雷维尔环境公司,以生产 但是如果我试着用兔子 php artisan env 我获得本地而不是p

您好,我将基于laravel 4的应用程序部署到fortrabbit。我尝试设置本地和生产环境

bootstrap/start.php
I中修改

$env = $app->detectEnvironment(function () {
        return getenv('LARAVEL_ENV') ?: 'local';
});
关于fortrabbit,我定义了env_var 拉雷维尔环境公司,以生产

但是如果我试着用兔子

php artisan env
我获得本地而不是prod


我的代码出了什么问题?

在Fortrabbit的仪表板中设置环境变量后,需要在
start.php
文件中编写以下内容:

$env = $app->detectEnvironment(function () {
    return isset($_SERVER['LARAVEL_ENV'])
        ? $_SERVER['LARAVEL_ENV']
        : 'prod';
});

请注意,如果没有环境变量,最好回退到生产环境,因为您不想在生产应用程序上错误地显示调试日志。

您是如何准确地在Fortrabbit上定义
LARAVEL_ENV
的?是的,我在Fortrabbit dashboard中定义了如果您在Fortrabbit dashboard中设置/修改环境变量,确保使用新的SSH会话在命令行上获取新值。感谢Oliver big,但即使我在本地主机上(我没有在本地主机上设置LARAVEL_envended),这也是prod,因此您应该在本地环境中将
LARAVEL_ENV
值显式设置为
local
。这当然不是必须的,但它可能会使您避免有一天在生产环境中显示调试日志。如果您不想这样做,那么您可以在上面的代码中将
'prod'
替换为
'local'