如何部署php应用程序

2023-12-25

我目前正在为一个慈善组织开发一个 php 应用程序,现在正处于定义部署实践的阶段。

我们的应用程序同时使用 Zend Framework 和 Doctrine。该应用程序将被部署到不同的服务器,每个服务器都有不同的配置文件。这些机器都是 Windows 和 Linux(但都装有 Apache 和 php 5.2+)。

源代码可在 Subversion 存储库中找到,我们希望在 Linux 服务器上构建和存储我们的包。

最好我们希望更新过程像在应用程序目录中运行更新命令一样简单,其中更新命令还更新数据库(使用教条脚本)并确保框架的依赖性。此更新命令必须是计算机上的命令(我们无法通过 ssh 访问它们)。最好我们可以选择下载新版本或提供已下载的带有新版本的 tarball。 (但仅下载或仅 tarball 也可以)

具有安装和更新(新版本)的包也优选地通过单个命令构建。

我一直在阅读一些有关 phar、pear、phing 的内容,但我不知道最好的方法是什么。持续集成服务器并不是真正必要的,但我考虑在构建版本后自动部署测试环境。

最初,只有 php 应用程序的更新必须非常简单,安装时最初可以手动填写配置文件。


我首先将各个服务器的应用程序根目录制作为 SVN 工作副本。您可以添加 mod_rewrite(或 IIS 的 IIRF ASAPI 过滤器)规则,以确保人们无法直接寻址您的 .svn 目录。

然后,更新到最新源就可以像 SVN 更新一样简单。为了满足您的数据库更新需求,我也会在 SVN 中维护数据库修改脚本。您可能需要将 SVN 更新包装在批处理/shell 脚本中,以便在下载脚本后执行数据库更新。

对于实时服务器上的变更管理,我还拥有它们的工作副本,而不是主干,而是发布分支。当您准备好发布时,可以将主干合并到发布分支中。这将允许您在实时服务器上执行部署之前测试部署并确保其可靠。它还具有一个很好的副作用,可以为您提供站点发布版本的良好副本,以防您需要在发布后跟踪问题。

最后,根据这些更新的强度和时间,您可能还希望让更新脚本翻转“维护中”开关,以便用户暂时看到正确的消息而不是损坏的站点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何部署php应用程序 的相关文章

随机推荐