我为我的应用设置了2个环境,在我的机器上设置了本地开发,在服务器上设置了生产环境。我将它们设置为bootstrap/start.php
,如下所示:
$env = $app->detectEnvironment(array(
'ariel_dev' => array('Ariels-MacBook-Pro.local'),
'production' => array('my.server.hostname'),
));
我还在app/config/ariel_dev
下设置了一个文件夹,我在其中放置了我要覆盖的配置文件,例如database.php
。
我对它们进行了测试,它们的效果非常好。问题是,当我在家时以及我在办公室时(我使用的是Mac),我的主机名会发生变化。因此,该应用程序与我的开发环境不匹配,默认为生产环境,连接到服务器的数据库。
我做错了什么?它不会抛出错误或其他东西吗?我是否在config下创建了一个生产文件夹?
希望有人帮忙!
答案 0 :(得分:1)
默认环境始终为生产,因此您可以将其从数组中删除。对于为本地开发人员提供两个不同主机名的其他问题,可以将它们添加为阵列本地环境密钥的数组值。
$env = $app->detectEnvironment(array(
'ariel_dev' => array('Ariels-MacBook-Pro.local', 'myHomeHostname'),
));
答案 1 :(得分:0)
请记住,生产也被用作后备 - 在您配置它时非常危险。
http://laravel.com/docs/configuration#environment-configuration州:
默认环境始终是生产
所以尝试这样的事情:
$env = $app->detectEnvironment(array(
'productionserver' => array('my.server.hostname'),
'ariel_dev' => array('Ariels-MacBook-Pro.local'),
));
然后使用productionserver作为文件夹而不是ariel_dev