好的,我从Laravel Docs获得了多环境。
这是我的设置:
- 当地环境
- 登台服务器环境
- 生产服务器
本地环境显然与生产服务器具有不同的主机名,但是登台服务器是生产服务器上的子域(所以dev.myapp.com
vs myapp.com
)。我也在myapp.dev
本地用作我的虚拟主机名。
我设置了以下内容来切换环境:
$env = $app->detectEnvironment(function(){
if(strpos($_SERVER['HTTP_HOST'],'.dev') !== false) || strpos($_SERVER['HTTP_HOST'],'dev.') !== false) {
return 'local';
}
return 'production';
});
这几乎可以工作。问题是我为我的开发/暂存环境设置了单独的数据库,因此我们不会在暂存环境中显示或操作实时数据。这落在终端上。当我运行时php artisan env
(在关于未设置的警告消息之后$_SERVER['HTTP_HOST']
)它显示为生产。
这意味着它不会通过终端在正确的数据库上运行迁移。
有什么更好的方法来引用这个?