【问题标题】:Using PEAR, Phing for a ROBUST deployment solution?将 PEAR、Phing 用于稳健的部署解决方案?
【发布时间】:2012-01-28 22:08:56
【问题描述】:

我正在开始一个新项目,并希望为我的开发、持续集成和生产服务器提供一步构建过程。

我希望该进程包含在我的源代码控制 (git/github) 中,并在我的三台服务器中的任何一台上稳健运行,这三台服务器非常相似,但项目根目录的路径不同。

我曾计划使用通过 Pyrus 安装的 Phing、PHPDocumentor、PHP_CodeSniffer、PHPUnit 等到可以与项目一起部署的本地化 PEAR/PEAR2 安装中,因此我可以在构建时对我的依赖项充满信心。

但是,我在进行此设置时遇到了问题。

这是我第一次尝试建立这样的构建系统,*nix 安装并不是我的强项(尽管我最终总是得到一个可靠的系统),所以这里的薄弱环节可能做我自己。但是,我遇到的很多问题似乎都来自 PEAR。

例如,无论我多么小心地通过 pyrus 安装,最终都会出现路径问题。查看一些 PEAR 包,所有路径都使用我在安装期间使用的相对路径(./pear 等)进行了硬编码(可能在运行时设置)。这意味着我只能在安装过​​程中从 pyrus 所在的文件夹成功运行包,即使运行脚本放在 ./pear/bin 中并且我确实在安装过程中设置了 bin 文件夹。有时路径在内部与单个包发生冲突,因此它想从这里运行,但它想从那里管理配置......

PHPDocumentor 不处理 PHP5.3(并且根本不会为我运行,也许是因为它有问题,也许是因为我安装错误?),所以我用最初的 PHPDoctor 替换了它看起来还不错。

另一个例子,在设置之后,Phing 会运行,但只是默默地死掉。在深入研究并跟踪它之后,我发现 /io/PhingFile 的第 70 行上的一个不起眼的函数正在为所需的 arg 获取 null,这会引发 ConfigurationException 导致它静默死亡。

我相信我可以让所有这些工作正常,但我不相信它会成为一个可部署的健壮系统,我真的不想调试、调整然后维护一个一大堆自我修改的 PEAR 包,每次升级都必须重新调整。

所以,最后的问题=o)

有没有人使用这些应用程序拥有非常强大的构建系统?有什么诀窍吗?

或者说每个人都有一个很好的健壮的构建系统,只是我对 *nix 安装和系统配置的天真让这一切看起来像是集群的双倍帮助?

有没有人对设置这样的系统以跨多个服务器工作有任何建议,还是我在开玩笑?也许我应该在项目根目录之外的系统上单独安装并继续我的开发?

【问题讨论】:

  • 我看不出有可能回答您的所有问题,但我已经使用类似的软件集进行了设置。大约几个月前使用 PEAR 安装程序没有问题
  • @zerkms - 那一定是我。我想我需要深入挖掘一下,看看情况如何 =o)

标签: php deployment continuous-integration pear


【解决方案1】:

@work,我们在我们的软件中使用了许多 PEAR 包,通过 Pyrus 将它们安装到本地目录中,并广泛使用 Phing 作为构建工具来运行测试和部署软件 - 在不同的 Linux 系统上,一些开发人员甚至在他们的窗框。

它运行可靠,我们没有遇到您描述的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多