使用CakePhp进行部署

时间:2010-04-03 01:42:55

标签: deployment cakephp

我有一个目前正在使用的CakePhp网站。我想继续在网站上工作,而不会影响已部署的网站。

将生产版本与已部署版本分开,然后在适当时合并两者的最佳方法是什么?

目前,我正在使用Git进行版本控制。

谢谢!

2 个答案:

答案 0 :(得分:4)

首先,了解一个版本控制系统Subversion,Git,Bazaar,Mercurial就是一些例子。它们是一个可以保存培根的安全网,因为它们可以保存文件集中每个文件的每个更改。

然后,通常我在生产服务器上有一个本地开发服务器和一个子域(staging.example.com)。然后,我在本地开发服务器上进行大量开发。然后我使用SVN归档我的所有站点更改。然后,在生产服务器上使用shell帐户,我将新版本的软件签出到登台子域。如果它在那里工作正常,我可以使用一个SVN签出来更新实时站点。

我还听说有人在站点根目录所在的位置放置一个符号链接(/ var / www / public_html),指向实时目录(/ var / www / site_ver_01234),然后设置并行目录中的新版本(/ var / www / site_ver_23456)。最后,只需重新创建指向新版本目录的符号链接。该开关是瞬时和透明的。对不起,我对这种方法不太清楚,我暂时读过这篇文章,但我自己从未尝试过。

我还看过Bazaar(另一个版本控制系统),它有一个插件,每次签入版本时都会自动将任何已更改的文件ftps到给定的服务器。

答案 1 :(得分:2)

首先,一般的想法是使用version control system。使用此功能,您将在本地计算机上或与多个人一起开发您的站点,并在某处拥有一个中央存储库。

当您对某个版本感到满意并想要部署它时,您可以“标记”它。这意味着您冻结该修订的状态并将其与不断发展的“主干”分开。具体取决于您的版本控制系统。

然后,您将该标记修订版本并将其复制到实时服务器。可能您可能先将其复制到“临时服务器”,然后再在另一个环境中进行测试。这种复制可以像使用FTP覆盖所有现有文件一样简单,也可以涉及自动部署系统,它将为您处理细节并允许您回滚不成功的部署。如果还涉及数据库,您可能还在查看需要运行的数据库模式迁移脚本。

这些步骤中的每一步都可以通过多种方式完成,您必须找出最适合您的方法。如果您尚未这样做,请开始使用版本控制系统,例如SVNgit。这样做现在!然后你可能想谷歌或搜索关于使用该系统标记和分支的不同techniques的SO。对于认真部署,请从关键字Capistrano或其中一个PHP克隆开始。