本地和生产的Laravel环境文件可能无法正常工作?

时间:2014-05-30 13:12:26

标签: laravel laravel-4

在Laravel 4中,我正在设置我的本地开发机器(我的笔记本电脑),然后我有我的生产服务器。

在我的/bootstrap/start.php

$env = $app->detectEnvironment(array(

'local'      => array('MacBook-Pro-2.local'),
'production' => array('ripken'),

));

然后我在我的根目录中创建了一个 .env.local.php ,其中包含以下内容:

<?php

return [

// Database Connection Settings
'db_host'     => '127.0.0.1',
'db_name'     => 'censored',
'db_user'     => 'censored',
'db_password' => 'censored'

];

那部分有效。但是,我去了我的生产服务器并创建了相同的文件,称为 .env.production.php ,并且它不会加载该文件中的变量。我不知道是什么让我觉得这样做但是我在名称中没有“生产”的情况下重命名了文件 .env.php 并且它有效。

我的问题是,为什么 .env.production.php 不起作用?我认为这就是Laravel的优秀人员希望我命名我的各种环境文件。

1 个答案:

答案 0 :(得分:9)

生产是默认的&#39;规则集,所以有点特别。 Laravel将寻找&#34; base&#34;或&#34;默认&#34;加载生产时的规则,而不是实际的名称生成。

所以你可以改变

$env = $app->detectEnvironment(array(
'local'      => array('MacBook-Pro-2.local'),
'production' => array('ripken'),
));

$env = $app->detectEnvironment(array(
'local'      => array('MacBook-Pro-2.local'),    
));

那样的任何东西都不是&#34; MacBook-Pro-2.local&#34;将自动生产。然后只需使用默认的.env.php进行生产设置。

需要明确定义其他所有环境 - 例如 .env.local.php .env.testing.php