在生产服务器上,如何在新鲜且安全的 PHP 包之间做出妥协?

在生产服务器上,如何在新鲜且安全的 PHP 包之间做出妥协?

我有几个运行 Centos 的生产服务器。我的应用程序需要较新版本的 PHP(> 5.2,IIRC)。Centos 用户当前可用的选项包括:

  1. 官方、主流的 centos5/redhat 软件包。
    • 优点:最稳定、最安全、易于安装 - redhat 定期发布安全更新和公告。
    • 缺点:软件包较旧(5.1.6?)
  2. 第三方存储库(如雷米·科莱的仓库)
    • 优点:先进、易于安装
    • 缺点:不可靠——我们以前使用过 utterramblings 存储库……但这个家伙已经失踪一年多了。我不想再这样孤身一人了。
    • 缺点:不太安全或稳定
  3. 使用 CentOS 测试存储库
    • 优点:版本较新,易于安装
    • 缺点:不稳定。他们称其为“测试”是有原因的。不适合用作生产服务器
  4. 从源代码构建(php.net)
    • 优点:前沿技术
    • 缺点:劳动密集型、不安全、不稳定

其他选择:

  1. Redhat 提供Redhat 应用程序堆栈其中包括最近的版本,但是不存在 centos 等效版本。
    • 这些软件包的 CentOS 版本不存在,这是为什么呢?源代码肯定是可用的,对吧?
    • 源代码必须可用,对吧?自己构建 centos 软件包有多难?
  2. 其他 Linux 发行版
    1. Debian 的稳定性与 redhat 相当,但提供的软件包较旧
    2. Ubuntu 提供更新但稳定性/安全性较差的软件包
    3. 其他的?

所以,最后,我的问题是:有没有一个好的稳定、安全、定期更新的 PHP 软件包或源代码来源(适用于任何 Linux 发行版)?您从哪里获得源代码/二进制文件?

答案1

只是为了突出 Debian 方面:

之前的 Debian 版本 - Etch(2007 年 4 月 8 日) - 附带 PHP 5.2.0。

当前的 Debian 版本 - Lenny(2009 年 2 月 14 日) - 附带 PHP 5.2.6。

如果在发布周期内软件包有任何重大更新,这些版本通常可在backports.org如果他们有明显的用户群。可以找到 Lenny 可用的反向移植软件包的完整列表这里。截至目前,此列表相对较短,因为上次发布仅有几个月前。

要查看特定版本PHP以及您可以使用的 Debian 中的其他软件包软件包信息网

答案2

我建立自己的 RPM,因为我不相信第三方维护者会留在地球上。

这有点麻烦(尽管我只构建了几个包),但我知道完成后会得到什么。我使用上游(RHEL / CentOS)的规范文件,但必要时我会修改它们以满足我的需求,并替换我正在寻找的任何版本的源代码(必要时修改上游的补丁)。

这也有助于我避免在生产系统上安装编译器的工作流程,因为我可以将自定义的二进制文件发送给它们。当我“无法”运行旧操作系统(没有预算升级等)时,我也会这样做,以便为较新的软件包提供向旧操作系统的反向移植。

如果您能使用 SRPMS,构建软件包并不难。(主要是将给定软件包的构建环境整合在一起,这可能很麻烦。)从零开始构建 RPM(即自己编写规范)是一项很好的练习,但您应该先阅读一些“专业”编写的规范文件以了解它。

答案3

我实际上无法回答您的问题,但我习惯的做法是使用官方源代码版本,然后在开发环境中进行编译。

然后我只需使用 dpkg 工具从中打包一个软件包(我使用的是 debian),但是应该有类似的方法对 RedHat 等操作系统进行打包。

然后,你只需将其传播到你的服务器上。

答案4

其他值得考虑的选择

相关内容