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

标签 php svn deployment solution

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

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

注意:大多数(如果不是全部)我没有 SSH 访问服务器的权限,只能使用 SFTP。

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

如何改进此解决方案?

感谢并抱歉我的英语。

最佳答案

如果您可以设置生产服务器通过安全通道访问 SVN 存储库,例如使用 webdav 的 https,则可以尝试以下操作:

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

现在,如果您有办法安全地调用此脚本,例如提交脚本。瞧,你已经实现了自动化。

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

解决这个问题:

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

确保只有适当的变更控制人员(或当前控制手动产品部署的人员)才有能力将 svn 复制到存储库中的此目录。

例如,假设您的存储库设置为:

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

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

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

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

当然,您的里程可能会有所不同;这只是对您的调查的建议。。 您应该花时间考虑安全影响以及如果设置不正确可能导致的灾难。

希望这会有所帮助,即使只是让您考虑其他解决方案。

关于php - 需要有关我的 PHP 开发解决方案的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1704957/

相关文章:

php - MySQL WHERE IN () + AND , PDO 只返回一行

php - 我的 MySQL 查询有什么问题?

linux - Subversion sudo svn update 更改文件所有权和 rwx

ruby-on-rails - 管理同一台机器上不同分支的 Rails 迁移

Excel VBE 导出不一致

php - 使用 css 和空白行设置 php echo 样式

linux - .htaccess:如何美化我的 URL 并删除结尾的正斜杠?

ruby - 如果源文件存在,如何编写 Chef 配方来复制文件? only_if 守卫不工作

python - 使用 git 部署

php - 如何使用 php 自动更新数据库值?