【问题标题】:What's the best process / app for automated deployment of PHP apps?自动部署 PHP 应用程序的最佳流程/应用程序是什么?
【发布时间】:2008-10-04 07:00:38
【问题描述】:

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

非常感谢。

【问题讨论】:

  • 伙计,人们为 SVN 修订号而疯狂。
  • 哦,是的,但我的意思是,这里有大约两打关于如何获得页面上的整体 SVN rev 编号的问题,就像底部的 SO 一样。
  • Capistrano 将 SVN 版本号放在已部署目录的文本文件中。如果您愿意,可以很容易地在您的页面上呼应。

标签: php deployment


【解决方案1】:

我使用自制脚本已经有一段时间了。它将(基于应用程序配置文件):

  1. 基于标签在存储库上运行svn export
  2. 将导出文件打包成 tar 或 zip 文件,其中包含名称中的标记。
  3. 使用scp 将包复制到适当的服务器(QA 或发布)。
  4. 使用ssh 连接到服务器以安装软件包并运行安装后脚本。

应用程序配置文件是项目的一部分。它可以告诉脚本(在第 2 步)去除路径并以其他方式处理指定的文件。它还指定了服务器名称以及如何处理外部。

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

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

【讨论】:

  • 我们在这里做同样的事情,只是一个好主意是使用标准化的工具,更容易维护/转移。对于个人项目,它可能没问题,但在公司环境中,将您的脚本和项目特定的构建脚本再次迁移到 PHING 或 ANT 等可能更容易支持......
【解决方案2】:

巧合的是,我刚刚阅读了一个名为 Phing 的类似 Apache Ant/gnu make 的构建工具。我喜欢它的地方在于能够用 PHP 编写 custom extensions

【讨论】:

  • 第二 - 自从我们开始使用 Phing 以来,我真的很喜欢它。
  • 这看起来很有趣,而且可能真的很方便,所以谢谢(!),但是您不要误用“讽刺地”这个词。你读到这个是巧合。
【解决方案3】:

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

【讨论】:

  • 我一直在设置一个部署脚本,就像你提到的那样(我计划在 github 上以某种身份发布我的)并设置它并与 phpUnderControl 一起使用,它就像一个魅力。我只能在成功构建后部署,这很好。
【解决方案4】:

【讨论】:

    【解决方案5】:

    我们正在使用 Webistrano(Capistrano 的 Web 前端)来部署几十个项目。它构建为 Ruby on Rails 应用程序,并为 Capistrano 部署提供了一个漂亮、集中且一致的用户界面。

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

    还不错的是,所有部署日志都已存储,因此有审计线索。谁将哪个修订版部署到实时服务器,诸如此类。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-05
      • 2010-11-10
      • 2023-03-29
      • 1970-01-01
      • 2010-09-10
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多