Deployment 使用CakePhp进行部署

Deployment 使用CakePhp进行部署,deployment,cakephp,Deployment,Cakephp,我有一个CakePhp网站,目前正在运行。我希望在不影响已部署站点的情况下继续在站点上工作 将生产版本与已部署版本分开,然后在适当的时候将两者合并的最佳方法是什么 目前,我正在使用Git进行版本控制 谢谢 首先,了解版本控制系统Subversion、Git、Bazaar和Mercurial就是一些例子。它们是一个安全网,可以保存您的bacon,因为它们保存对文件集中每个文件的更改 然后,通常在生产服务器上有一个本地开发服务器和一个子域staging.example.com。然后我在本地开发服务器

我有一个CakePhp网站,目前正在运行。我希望在不影响已部署站点的情况下继续在站点上工作

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

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


谢谢

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

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

我还听说有人在站点根目录应该是/var/www/public\u html的位置放置了一个符号链接,指向live目录/var/www/site\u ver\u 01234,然后在并行目录/var/www/site\u ver\u 23456中设置新版本。最后,只需重新创建指向新版本目录的符号链接。该开关是瞬时和透明的。很抱歉,我不太清楚这个方法,我之前读过,但我自己从未尝试过


我还研究了Bazaar另一个版本控制系统,它有一个插件,可以在每次签入版本时自动将任何更改的文件ftps到给定的服务器

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

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

我还听说有人在站点根目录应该是/var/www/public\u html的位置放置了一个符号链接,指向live目录/var/www/site\u ver\u 01234,然后在并行目录/var/www/site\u ver\u 23456中设置新版本。最后,只需重新创建指向新版本目录的符号链接。该开关是瞬时和透明的。很抱歉,我不太清楚这个方法,我之前读过,但我自己从未尝试过


我还研究了Bazaar另一个版本控制系统,它有一个插件,可以在每次签入版本时自动将任何更改的文件ftps到给定的服务器

首先,总体思路是使用。使用这种方法,您可以在本地计算机上或与多人一起开发站点,在某个地方有一个中央存储库

当您对某个修订感到满意并希望部署它时,可以对其进行标记。这意味着您冻结了该修订的状态,并将其与不断演化的主干分离。这意味着什么具体取决于您的版本控制系统

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


这些步骤中的每一步都可以用许多不同的方法来完成,您必须找出最适合您的方法。如果您还没有这样做,请开始使用版本控制系统,如或。现在就做!然后,你可能想用谷歌或搜索等不同的标签和分支使用该系统。对于严肃的部署,从关键字like或其PHP克隆开始。

首先,一般的想法是使用一个。使用这种方法,您可以在本地计算机上或与多人一起开发站点,在某个地方有一个中央存储库

当您对某个修订感到满意并希望部署它时,可以对其进行标记。这意味着您冻结了该修订的状态,并将其与不断演化的主干分离。这意味着什么具体取决于您的版本控制系统

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


这些步骤中的每一步都可以用许多不同的方法来完成,您必须找出最适合您的方法。如果您还没有这样做,请开始使用版本控制系统,如或。现在就做!然后,你可能想用谷歌或搜索等不同的标签和分支使用该系统。对于严肃的部署,从关键字like或其PHP克隆开始。

您的问题涉及迭代开发、移植或部署吗?我不知道…我对这个有点陌生。。。对我来说,这些术语相对来说是相似的。迭代开发是一种开发方式,在这种方式中,你一块一块地构建最终产品,在继续下一步之前完成每一部分:。移植意味着将现有系统移动或重写到另一个平台或另一种语言。部署就是你如何将你的应用程序从你的开发机器转移到世界上;我编辑了我的原始问题。。。您的问题是否与迭代开发、移植或部署有关?我不知道…我对这个有点陌生。。。对我来说,这些术语相对来说是相似的。迭代开发是一种开发方式,在这种方式中,你一块一块地构建最终产品,在继续下一步之前完成每一部分:。移植意味着将现有系统移动或重写到另一个平台或另一种语言。部署就是你如何将你的应用程序从你的开发机器转移到世界上;我编辑了我的原始问题。。。更清楚吗?目前,我们正在使用Git进行版本控制。。将立即检查Capistran,我们正在使用Git进行版本控制。。将查看capistranoHere的一个页面,讨论如何在适当的位置更新符号链接。这是一个讨论如何在适当的位置更新符号链接的页面。