Laravel 5环境检测在Windows 8.1不起作用

问题描述:

现在它的工作刚刚更新到5.0.6版本。Laravel 5环境检测在Windows 8.1不起作用

$ php artisan env 
Current application environment: production 

如此重复.env.example文件.env.production,但没有得到运气

所以我在Foundation->Bootstrap->DetectEnvironment.php检查的行数18 $app->environmentFile()

它总是给.env而不是.env.production

try 
{ 
    Dotenv::load($app['path.base'], $app->environmentFile()); 
} 

所以再次复制.env.example.env 在此之后env变量可用,但在随机时间有时会读取,有时不会。现在我不确定在哪里查看过程有什么问题。

请帮助!

要使用Laravel环境,你必须恰克.env.example.env和改变.env

自己的配置了解更多关于环境配置上Laravel Doc

+0

已更改,请参阅问题 – Webloper 2015-02-24 04:29:47

+0

它如何更改?你得到了什么错误? – 2015-02-24 04:36:39

+0

不知道什么是错的,只是更新laravel 5.0.6,现在它的工作。无论如何,谢谢你们! – Webloper 2015-02-24 04:49:43

我猜你只需要一个.env文件在您的根你的配置。将APP_ENV更改为您所需的环境。

如果您使用php artisan serve来运行您的应用程序,请记住在更改.env文件后停止它并重新运行php artisan serve命令。

晚的答案,但我今天有同样的问题...

看来点ENV文件不是从应用程序的环境,而是来自ENVIRONMENT_FILE环境变量衍生...

$ php artisan tinker --env=foo 
Psy Shell v0.4.4 (PHP 5.4.39 — cli) by Justin Hileman 
>>> app() 
=> <Illuminate\Foundation\Application #000000003700ceef000000004af960b1> { 
     configurationIsCached: false, 
     environment: "foo", 
     environmentFile: ".env", 
     isLocal: false, 
     ... 

即使环境是'富'.env.foo文件不使用。因此除了设置环境之外,您还需要设置环境变量。

$ ENVIRONMENT_FILE=".env.foo" php artisan tinker --env=foo 
Psy Shell v0.4.4 (PHP 5.4.39 — cli) by Justin Hileman 
>>> app() 
=> <Illuminate\Foundation\Application #00000000570e634e0000000052841910> { 
     configurationIsCached: false, 
     environment: "foo", 
     environmentFile: ".env.foo", 
     isLocal: false, 
     ... 

来自具有与每一个自己的配置树多环境(覆盖全球的一个),基本上下探环境的概念,而是采取/从“环境”覆盖了一堆的配置设置迁移(UNIX外壳env,Apache的SetEnv,dot-env,...)仍在继续我猜,导致这种混乱的情况。