需要有关PHP开发解决方案的建议

时间:2009-11-10 00:44:27

标签: php svn deployment solution

以下是我们当前的php开发解决方案的设置方法:

每个开发人员都在本地计算机上工作。 每个开发人员都将其更改提交到公共SVN服务器(Intranet)。 提交挂钩将更改上载到登台服务器并执行验证任务。 产品准备就绪后,手动通过SFTP将其部署到生产服务器。

注意:大多数 - 如果不是全部 - 我没有SSH访问服务器,只有SFTP。

我可以像登台服务器更新一样自动部署到生产服务器,但此解决方案只能单向工作。如果出现问题,我怎样才能恢复到以前的版本?

如何改进此解决方案?

谢谢,对不起我的英语。

1 个答案:

答案 0 :(得分:4)

如果您可以设置生产服务器以通过安全通道访问SVN仓库,例如https with webdav,请尝试以下操作:

在生产服务器上创建一个脚本,允许您输入标记目录和/或修订号/日期并执行svn导出。这样,prod服务器就从svn。

中提取更改

现在,如果你有办法安全地调用这个脚本,比如提交脚本。瞧,你有自动化。

最重要的是,您不希望对您未计划的prod服务器执行自动更新。

解决这个问题:

提交脚本应仅在将某些内容提交到“/ path / to / tags / release / dir”时调用prod更新脚本<​​/ p>

确保只有适当的变更控制人员(或当前控制手动生产的人员)才能在仓库中对此目录执行svn复制。

例如,假设您的仓库设置为:

/yourWebsite
--> /branches
--> /trunk
--> /tags
----> /releases

将触发自动部署到prod的提交类似于:

svn copy https://mySvnRepo/yourWebSite/trunk \
   https://mySvnRepo/yourWebSite/tags/releases/x.y \
   -m "Tagging for production deployment"

可以通过提交到先前版本目录来实现回滚。但请注意,这不会导致添加的新文件被回滚。

当然,您的里程可能会有所不同;这只是您调查的建议。 如果设置不正确,您应该花时间考虑安全隐患和灾难可能性。

希望这有帮助,即使只是为了让你想到其他解决方案。