什么是自动部署PHP应用程序的最佳流程/应用程序?

时间:2008-10-04 07:00:39

标签: php deployment

关于.NET的另一篇文章与.NET有关 - 而不是我们。纯PHP。试图找到部署PHP应用程序稳定版本的最佳方法/流程。我在Capistrano看过一篇文章,但我很好奇还有什么。除了显而易见的原因,我还想添加一些脚本以便SVN rev number gets added in there as well

非常感谢。

5 个答案:

答案 0 :(得分:2)

我已经使用了自己编写的脚本很长一段时间了。它将(基于应用程序配置文件):

  1. 根据标记在存储库中运行svn export
  2. 将导出打包到tar或zip文件中,其中包含名称中的标记。
  3. 使用scp将软件包复制到相应的服务器(QA或版本)。
  4. 使用ssh连接到服务器以安装软件包并运行安装后脚本。
  5. 应用程序配置文件是项目的一部分。它可以告诉脚本(在步骤2)剥离路径并以其他方式处理指定的文件。它还指定服务器名称以及如何处理外部。

    我最近迁移了脚本以支持Git和Subversion。我也可能将它迁移到PHP,因为我们现在运行的是混合(Linux和Windows)设置,而Linux现在只占少数。

    我计划使用post-commit钩子自动调用脚本,但还没有必要实现它。

答案 1 :(得分:2)

巧合的是,我刚刚阅读了一篇名为Phing的Apache Ant / gnu make构建工具。我喜欢它的是能够在PHP中编写custom extensions

答案 2 :(得分:1)

我不知道它是否适用于实时部署应用程序,但phpUnderControl是一个持续集成套件(我现在才开始研究)。如果它本身不支持进行部署,则可以扩展它们以进行部署。

答案 3 :(得分:1)

Chris Hartjes对此有一个很好的看法:Deployment is not a 4 letter word

答案 4 :(得分:1)

我们正在使用Webistrano,这是Capistrano的网络前端,可以部署几十个项目。它是作为Ruby on Rails应用程序构建的,为Capistrano部署提供了一个漂亮,集中且一致的用户界面。

Webistrano不是在每个项目中都有封面配方,而是运行命令行工具,而是将配方存储在其数据库中,并允许您将配方附加到多个项目和阶段。这减少了脚本的重复。

同样很好的是存储了所有部署日志,因此存在审计跟踪。是谁在实时服务器上部署了哪个版本。

根据您的要求,修订号也存储在已部署的项目中。

总而言之,我们对它非常满意。