運用サーバー上の新しい PHP パッケージと安全な PHP パッケージの間で妥協していますか?

運用サーバー上の新しい PHP パッケージと安全な PHP パッケージの間で妥協していますか?

Centos を実行している本番サーバーが数台あります。私のアプリケーションでは、かなり新しいバージョンの PHP (5.2 以上、IIRC) が必要です。現在 Centos ユーザーが利用できるオプションは次のとおりです。

  1. 公式の主流の centos5/redhat パッケージ。
    • 利点: 最も安定しており、最も安全で、インストールが簡単 - RedHat は定期的にセキュリティ更新とアドバイザリをリリースします。
    • 短所: パッケージが古い (5.1.6?)
  2. サードパーティのリポジトリ(レミ・コレットのリポジトリ)
    • 利点: 最先端、簡単にインストール可能
    • 短所: 信頼性が低い - 以前は utterramblings リポジトリを使用していましたが、その人は 1 年以上もの間まったく連絡が取れません。また同じように困惑したくありません。
    • 短所: 安全性や安定性が低い
  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 が付属しています。

リリースサイクル中にパッケージにメジャーアップデートがあった場合、それらのバージョンは通常、バックポート目立ったユーザーベースがある場合。Lennyで利用可能なバックポートパッケージの完全なリストは以下にあります。ここ最後のリリースが数か月前であるため、このリストは現時点では比較的短いです。

特定のバージョンを確認するにはPHP のDebianで使用できる他のパッケージパッケージ

答え2

私はサードパーティのメンテナーが地球上に留まるとは信じていないので、独自の RPM を構築しています。

少し面倒ですが (パッケージをいくつかビルドするだけですが)、完了すると何が得られるかがわかります。アップストリーム (RHEL / CentOS) の仕様ファイルを使用しますが、必要に応じてニーズに合わせて変更し、探しているソースのバージョンで置き換えます (必要に応じてアップストリームのパッチを変更します)。

これは、カスタムビルドしたバイナリを本番システムに出荷できるため、本番システムにコンパイラをインストールしないというワークフローにも役立ちます。また、古い OS の実行に「行き詰まった」場合 (アップグレードする予算がないなど)、古い OS に新しいパッケージのバックポートを提供するためにもこれを行います。

SRPMS を利用できるなら、パッケージの構築はそれほど難しくありません。(主に、特定のパッケージのビルド環境をまとめるのが面倒です。) RPM をゼロから構築する (つまり、仕様を自分で書く) のは良い練習になりますが、まずは「プロが」作成した仕様ファイルを読んで、感覚をつかんでおく必要があります。

答え3

あなたの質問に正確に答えることはできませんが、私が通常行っているのは、公式のソースコードリリースを使用し、それを開発環境でコンパイルすることです。

次に、dpkg ツールを使用してそこからパッケージを作成します (私は Debian を使用しています)。ただし、RedHat のような OS でパッケージを作成する場合も同様の方法があるはずです。

その後は、それをサーバーに配布するだけです。

答え4

検討する価値のある他の選択肢

関連情報