1

我需要使用 Laravel 和 Apache 的子域设置开发和生产环境。例如:

dev.mydomain.com
app.mydomain.com

app 是生产,dev 是开发。在我的 /var/www 中,我有 dev.mydomain.com 和 app.mydomain.com 文件夹。在每个文件夹中,我都有相同的 Laravel 项目(除了指向不同子域和数据库的配置文件)。

我想将这些位置分开,以便能够在不同的数据库上进行测试,并在投入生产之前测试新的开发文件(几乎没有停机时间)。我可以通过在我的 Apache 配置文件中临时删除另一个子域的配置来一次访问一个子域,但这很麻烦,并且会导致两个应用程序停机。

我的 .htaccess 文件似乎是正确的,因为我可以查看两个子域上的测试 url(通过使用简单的 .html 文件)。当我尝试访问安装了 laravel 的子域时,我得到了奇怪的结果,例如在应用程序子域中能够连接到开发数据库或能够登录到应用程序 env,但无法登录到开发环境或反之亦然。

我一直在搜索 stackoverflow 和谷歌搜索以尝试找到解决方案,但到目前为止还没有出现任何问题。我主要找到了有关如何设置的教程

detectEnvironment  

像这里的链接中的 laravel 一样:

http://chrishayes.ca/blog/code/laravel-4-setting-utilizing-environments-environment-configuration

是否有人对此有解决方案,或者有更好的方法在 Laravel 中与生产环境一起使用开发/测试环境?

4

1 回答 1

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 将用于开发环境(因为如果你使用 artisan$_SERVER['HTTP_HOST']没有设置,并且在上面的代码dev中选择了这个开发。

于 2014-10-14T07:40:06.200 回答