Capistrano 可以帮助您完成此过程。使用 SSH 和密钥,它使部署更改等的过程非常无缝。虽然这是一个 ruby 应用程序,但您仍然可以使用它来部署 PHP 或其他应用程序,请查看此处了解一些信息
本文将讨论它,使用共享文件夹和发布文件夹。共享文件夹可以保存您的个人部署服务器(URL、数据库连接等)的配置文件,以及在网站生命周期内上传且不在 svn 中的资产。你也可以让 Capistrano 为你处理这个问题。
虽然不知道设置的人第一次看到这个可能会有些困难,但它确实使部署变得容易。我认为 Capistrano 所做的非常简单,可能可以用另一种语言编写来处理您的特定场景。
另一个将其与 SVN 或任何存储库联系起来的想法。就是使用它们的钩子来执行这些部署。即每次对主干的提交都会更新开发服务器。一个分支会将其推送到您的暂存环境。
但是这个链接很好地展示了如何设置这种类型的环境。我认为您设置的内容是很好的做法,但做得还不够。唯一可以帮助您的是自动部署到不同的环境和脚本,以帮助您设置新部署。
更新 ::
另外,我想指出,SVN 可以处理符号链接。因此,如果您在基于 Unix 的服务器上进行部署,您只需将符号链接放入存储库中并使用相对符号链接。
所以如果你有
./releases/200912231043
./shared/uploads
你可以把你的符号链接作为
./releases/200912231043/uploads -> ../../shared/uploads
这将为您提供一种简单的方法来管理不在 svn 中的资产,而无需使用大量部署的脚本。您现在可以使用提交来部署到您的开发和/或登台。