我目前正在为一个慈善组织开发一个 php 应用程序,我现在正处于定义部署实践的阶段。
我们的应用程序同时使用 Zend Framework 和 Doctrine。应用程序将部署到不同的服务器,每个服务器都有不同的配置文件。这些机器都是 Windows 和 Linux(但都使用 Apache 和 php 5.2+)。
源代码在 subversion 存储库中可用,我们希望在 Linux 服务器上构建和存储我们的包。
最好我们希望更新过程像在应用程序目录中运行更新命令一样简单,其中更新命令还更新数据库(使用教义脚本)并确保框架的依赖关系。此更新命令必须是机器上的命令(我们不能 ssh 进入它们)。最好我们可以选择下载新版本或为已下载的 tarball 提供新版本。(但只下载或只 tarball 也可以)
带有安装和更新(新版本)的软件包也最好由单个命令构建。
我一直在阅读有关 phar、pear、phing 的一些信息,但我不知道最好的方法是什么。持续集成服务器并不是真正需要的,但我考虑在构建版本后自动部署测试环境。
最初只有 php 应用程序的更新必须非常容易,安装时可以手动填写最初的配置文件。