我正在开发一个PHP网站,我刚刚为我的运行环境添加了一个开关 - development
表示它在我的本地站点上运行,而production
正在运行住在网络主机上:
<?php
define('ENV','development');
//or
define('ENV','production');
我在VC下使用Mercurial的网站,通常只使用hg push
部署我的网站(服务器也运行hg),但是,添加此切换后,“生产”网站将始终与“开发”网站的实际部署版本将始终设置为production
而不是development
。
这意味着我的部署过程来自
hg commit -m "Made changes"
hg push
ssh host hg update
到
hg commit -m "Made changes"
development
更改为production
hg push
ssh host hg update
production
- &gt; development
hg commit -m "prod -> dev"
这显然不是很好。
是否有某种方法可以保持一个与另一个隔离,以便将实际网站设置为production
并将我的本地副本设置为development
?
答案 0 :(得分:3)
没有开关,而是拥有开发分支和生产分支。
hg up prodbranch
hg merge -r devbranch
hg push
ssh yourserver hg update prodbranch
答案 1 :(得分:3)
如果你有一个Apache网络服务器,你可以在server / vhost / per-directory / .htaccess config中设置它:
SetEnv Deployment development
或在制作中
SetEnv Deployment production
在你的脚本中使用:
define('ENV',$_ENV['Deployment'])
我假设(通常是)实际的webserver / virtualhost配置不在正常代码之内。
答案 2 :(得分:0)
您是否考虑过不将配置文件置于版本控制之下?