使用PEAR,Phing获得ROBUST部署解决方案?

时间:2012-01-28 22:08:56

标签: php deployment continuous-integration pear

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

我希望这个进程能够包含在我的源代码控制(git / github)中,并且可以在我的三台服务器中运行,这三台服务器非常相似,但项目根目录的路径不同。

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

然而,除了设置这个问题之外我什么都没有。

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

例如,无论我通过pyrus如何小心地安装,一切都会产生路径问题。查看一些PEAR包,所有路径都是硬编码的(可能在运行时设置)与安装期间使用的相对路径(./pear等)。这意味着我只能从安装过程中pyrus所在的文件夹中成功运行软件包,即使运行的文件已放入./pear/bin并且我在安装期间设置了bin文件夹。有时路径内部冲突到一个包,所以它想从这里运行,但它想从那边管理配置......

PHPDocumentor不处理PHP5.3(并且根本不会为我运行,可能是因为它有问题,可能是因为我错误地安装了它?),所以我用PHPDoctor取而代之看起来很不错。

另一个例子,在设置之后,Phing将会运行,但只是默默地死去。在深入挖掘并跟踪它之后,我发现/ io / PhingFile的第70行上的一个模糊函数对于所需的arg变为null,这会抛出一个ConfigurationException,导致它以静默方式死掉。

我相信我可以让所有这些工作正常,但我不相信它会成为一个可部署的强大系统,我真的不想调试,调整,然后维护一个大量的自我修改的PEAR包在每次升级时都必须进行转发。

所以,最后问题= o)

有没有人使用这些应用程序拥有非常强大的强大构建系统?它有一些技巧吗?

每个人都有一个很好的强大的构建系统,这只是我的天真与* nix安装和系统配置,这使得这看起来像是一个双层帮助clusterphuckery?

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

1 个答案:

答案 0 :(得分:1)

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

它工作正常,我们没有遇到您描述的问题。