我需要使用Laravel和Apache的子域设置开发和生产环境。例如:
dev.mydomain.com
app.mydomain.com
app是生产,dev是开发。在我的/ var / www里面我有文件夹dev.mydomain.com和app.mydomain.com。在每个文件夹中,我都有相同的Laravel项目(除了指向不同子域和数据库的配置文件)。
我希望将这些位置分开,以便能够在不同的数据库上进行测试,并在推送到生产之前测试新的开发文件(几乎没有停机时间)。我可以通过暂时删除Apache配置文件中另一个的配置来一次访问一个子域,但这很麻烦,导致两个应用程序停机。
我的.htaccess文件似乎是正确的,因为我可以在两个子域上查看测试网址(通过使用简单的.html文件)。当我尝试访问安装了laravel的子域时,我得到了奇怪的结果,例如能够在app子域中连接到dev数据库或者能够登录到app env,但是无法登录到dev环境或者反之亦然。
我一直在搜索stackoverflow和谷歌搜索试图找到一个解决方案,但到目前为止还没有任何结果。我主要找到了如何设置
的教程detectEnvironment
如同链接中的laravel:
http://chrishayes.ca/blog/code/laravel-4-setting-utilizing-environments-environment-configuration
在生产环境中,是否有人为Laravel中的开发/测试环境提供了解决方案或更好的方法?
答案 0 :(得分:0)
在bootstrap/start.php
中,你可以做的是根据使用的域设置环境:
$env = $app->detectEnvironment(function(){
if (!isset($_SERVER['HTTP_HOST']) ||
$_SERVER['HTTP_HOST'] =='dev.mydomain.com') {
return 'dev';
}
return 'production';
});
这里唯一的问题是artisan
我相信 - 你只能在一个环境中使用它。在上面的代码中,artisan将用于开发环境(因为如果您使用工匠$_SERVER['HTTP_HOST']
未设置,并且在上面的代码中正在选择此dev
开发。