首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Apache Dev和Production子域的Laravel 4.2

使用Apache Dev和Production子域的Laravel 4.2
EN

Stack Overflow用户
提问于 2014-10-14 15:23:20
回答 1查看 322关注 0票数 1

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

代码语言:javascript
复制
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周围搜索,并在谷歌上搜索,试图找到解决方案,但到目前为止还没有找到任何结果。我主要找到了关于如何设置的教程

代码语言:javascript
复制
detectEnvironment  

像这里的链接中的laravel:

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

有没有人对此有解决方案,或者有更好的方法在Laravel中同时使用开发/测试环境和生产环境?

EN

回答 1

Stack Overflow用户

发布于 2014-10-14 15:40:06

bootstrap/start.php中,您可以根据使用的域设置环境:

代码语言:javascript
复制
$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开发的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26354907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档