现在它的工作刚刚更新到5.0.6版本。
$ 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变量可用之后,有时它会随机读取,有时则不会。现在我不知道在哪里看过程有什么问题。
请帮助!!
答案 0 :(得分:0)
要使用Laravel环境,您必须将.env.example
更改为.env
并在.env
答案 1 :(得分:0)
我想您的配置只需要根目录下的单个.env
文件。将APP_ENV
更改为您想要的环境。
如果您使用php artisan serve
运行应用程序,请记住在更改.env文件后停止并重新运行php artisan serve
命令。
答案 2 :(得分:0)
迟到的答案,但我今天遇到同样的问题......
dot-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,
...
即使环境是'foo',也不会使用.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 shell env,Apache的SetEnv ,dot-env,...)我还在猜测,这导致了这种令人困惑的情况。