初めに #
RHEL9環境では、mod_php(php_mod)よるPHP実行方式が廃止されています。
本記事では、RHEL9でphp_modが廃止された理由について解説します。
php_modが廃止された背景 #
Apacheの構成変更 #
Apache HTTP Serverは、2.4
系ではシステムが以下に対応している場合、デフォルトでevent MPM
が選択される仕様となっております。
- スレッド機能
- スレッドセーフなポーリング(kqueueとepoll)
近年利用されるほとんどのOSでは、これらの機能は標準的にサポートされています。
そのため、特別な要件のないほとんどの環境ではevent MPM
がデフォルトとなります。
この仕様変更に伴い、従来のmod_php
が依存していたprefork MPM
は、パフォーマンス効率やリソース最適化の観点から非推奨となりました。
PHP側の方針変更 #
php-fpmは、PHP5.3.3
で本体に統合されて以降、性能改善や運用柔軟性の観点から事実上の業界標準とされています。
また、近年のWebアプリケーションは、同時接続数の増大、マイクロサービスアーキテクチャの普及、コンテナ環境(Docker
など)での運用が一般化しており、軽量・高速・分離型のプロセスマネジメントが可能なphp-fpm方式が主流となっております。
一方、mod_php方式では、Apacheの各プロセスにPHPが組み込まれるため、プロセスごとのメモリ消費が大きくなる傾向があります。
これらの背景から、php-fpm方式が性能面・運用面の両方で優位となり、モダンなサーバー環境における事実上の標準運用方式となっています。
RHEL9のパッケージポリシー変更 #
先述したApacheの構成変更やPHP側の方針変更に伴いRHEL8ではphp_modはデフォルトではインストールされず非推奨となりました。
RHEL8リリースノートまたRHEL9では、公式リポジトリからmod_php関連パッケージが廃止
され、Apache+php-fpmの構成が推奨となりました。