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