创建Dev,Tst和Prod部署的方法

时间:2012-09-07 17:28:58

标签: zend-framework deployment

我的团队整个夏天都在使用最新版本的ZF1开发一个简单的微博应用程序。

我们将把钱投入可靠的VPN托管服务器上。我们的目标是创建3个环境 - 开发,测试和产品。我们的想法是在VPN服务器上创建Apache vhost配置并设置test.domain.com,该配置只能从服务器访问,以便普通用户无法从Web访问。然后我们的开发人员可以通过隧道进入服务器并访问test.domain.com。这可行吗?有人曾尝试过这个吗?是否有更好的方法?

1 个答案:

答案 0 :(得分:1)

阅读Vhosts,你会发现这是一个非常普通和简单的事情。以下是基于我自己的Linux开发机器的示例。使用此配置,Apache将尝试将ServerName与浏览器中的URL进行匹配。如果我放入test.domain.com它将匹配测试站点,那里将检查允许哪些IP访问该站点。如果我不匹配该IP,Apache将返回并且“您不允许查看此目录错误”(401或403 http代码。不确定是哪个)。如果Apache找不到匹配项,它将使用第一个Vhost,因此您的prod-site应该首先使用。

警告:Apache使用浏览器中的URL进行匹配,因此如果我编辑主机文件,我可以欺骗apache。随后如果我成功欺骗了我的IP,我可以访问您的开发站点。因此,请始终在TEST和DEV站点上使用正确的登录/验证和授权程序,以防止任何损坏。

<VirtualHost *:80>
        ServerName domain.com, www.domain.com
           DocumentRoot /home/prod/document_root
        <Directory />
            Options FollowSymLinks
            AllowOverride All
            Order deny,allow
            Allow from all
        </Directory>   
</VirtualHost>

<VirtualHost *:80>
        ServerName dev.domain.com
           DocumentRoot /home/dev/document_root
        <Directory />
            Options FollowSymLinks
            AllowOverride All
            Order deny,allow
            Deny from all
            Allow from "localhost"
        </Directory>   
</VirtualHost>

<VirtualHost *:80>
        ServerName test.domain.com
           DocumentRoot /home/test/document_root
        <Directory />
            Options FollowSymLinks
            AllowOverride All
            Order deny,allow
            Deny from all
            Allow from "Some IPs"
        </Directory>   
</VirtualHost>