Ken*_*tor 5 php svn development-environment production-environment
我有一个网站说www.livesite.com,目前正在运行.我一直在开发网站的新版本,我的本地机器上的http://本地主机,然后提交我的SVN变化www.testsite.com在那里我会测试livesite.com服务器上,但在另一个域的网站(它与现场网站的环境相同,但在不同的域下).
现在我准备将新版本发布到livesite.com.第一次这样做很容易,我可以复制并粘贴从testsite.com到livesite.com的所有内容(不确定它是最好的方法).
我想保持testsite.com作为测试网站,我会推送更新,对其进行测试,一旦满足转移到livesite.com但我不知道如何做到这一点的新网站推出后..我不认为复制粘贴整个目录是正确的方法,它将打破livesite.com上当前用户的操作.
我还想在testsite.com上保留我的svn历史记录.使用SVN执行此操作的正确方法是什么?非常感谢!
其他提到Hudson或Weploy的答案都很好.它们涵盖的问题多于以下问题.也就是说,以下可能就足够了.
如果你觉得这有点矫枉过正,那么这就是穷人用SVN和一点创意系统管理的方式.
使您的自豪文档根目录为符号链接,而不是实际目录.意思是你有这样的事情:
/var/www/myproject-1-0-0
/var/www/myproject-1-1-0
/var/www/myproject-1-1-1
/var/www/html -> myproject-1-1-1
Run Code Online (Sandbox Code Playgroud)
这意味着您可以将代码签出到生产中(例如,myproject-1-1-2),而不会覆盖正在提供的内容.然后,您可以通过以下操作立即切换代码库:
$ rm html && ln -s myproject-1-1-2 html
Run Code Online (Sandbox Code Playgroud)
我进一步建议不要在生产箱上对你的主干进行svn checkout/svn导出.相反,提前创建一个分支(将其命名为myproject-XYZ).这样,如果您需要对生产代码进行一些非常紧张的调整,您可以将其提交回分支,并在火灾消失后将其合并回主干)
我做了很多,而且效果很好.但是,它有一些主要的缺点:
主要是,您必须自己处理数据库迁移或其他升级脚本.如果您有脚本(普通旧SQL或更复杂的东西),您需要考虑如何最好地执行它们.希望停机只需一分钟也许不是一个坏主意.您可以在(/ var/www/mainenance)周围保留一个"维护站点",如果需要,可以将符号链接指向那里一会儿.
例如,这种方法并不像Weploy那样酷,但是对于相对较小的项目(在单个服务器上运行,具有非庞大的数据库),它通常足够好,并且简单易行.
归档时间: |
|
查看次数: |
788 次 |
最近记录: |