こんにちは、mod_perlをこよなく愛用している @xtetsuji です。
みなさん、mod_perl使っていますか?Plack全盛の時代でも、まだレガシープロジェクトであったり、色々な理由でmod_perlを使い続けている方、結構いるんじゃないかと思っています。
「新しいものが良くて古いものが悪い」という考えは置いといて、mod_perlはとてもよく枯れていて実装も一つで安定したPerlの永続的実行環境の一つです。Plackやそれらのエコシステムを使えない現場では今も有力な選択肢の一つではないでしょうか。使用の際に極度にmod_perlにロックオンされないように設計すれば、中長期的な視野も入れた良いアプリケーションがかけると思います。
##RHEL7ベータ発表
この記事を書いているのは2013年12月ですが、去る2013年12月11日にRHEL7のベータ版が登場しました。
ネットの情報によると RHEL7ベータはmod_perl2のパッケージをコアから外した ようです。
その理由は「mod_perl2がApache2.4に対応していないから」だそう。要するにRHEL7でApache2.4を採用することに決めたことで、それに対応していないmod_perl2のパッケージが必然的に無くなることになるということらしいです。
mod_perl2がApache2.4に現状(2013年12月現在)対応していないのは、主にWindows上のApache2.4での対応に苦慮していることが原因のようです。これは Old Nabble というフォーラムで度々議論されていたのですが、その Old Nabble のサイト自体が無くなってしまい、今ではその議論を追うことができません。mod_perlのSubversionリポジトリのhttp24ブランチが現状を理解できる数少ない場所です。
##今後登場するCentOS7でもmod_perl削除の動きか?
RHEL7でmod_perl2のパッケージが削除されれば、それの写像といってもよいCentOS7でもmod_perl2のパッケージが削除されることが避けられないでしょう。
よく「システムPerlはスレッドを有効にしてコンパイルしてあるから、まずPerl、そしてApacheとmod_perlも自前でコンパイルする」という人がいますが、そういう人は大丈夫でしょう。ただ、そういったシステムPerlとはいえ、スレッドを有効にコンパイルしたことによって、ウェブの実行環境としてパフォーマンスに如実に影響を与えるかといったら、よほどの大規模サイトでない限り有意な差はないように思えます。
制限された案件では、ディストリビューションのコアにあるパッケージのみしか使えないという場合もありえます。今までユーザ人口の多いCentOSの新しいバージョンでmod_perlが削除されることの影響は皆無ではないでしょう。
##もとからあるRedHat系ディストリビューションのmod_perl問題
RHELとCentOSが写像の関係であるという前提のもとでCentOSに焦点を絞ってお話ししますが、CentOSの特定のバージョンでは「mod_perl1.99」と呼ばれる、当時はmod_perl2betaであったものの、結果的にmod_perl1とmod_perl2のキメラのような、今では使ってはいけないAPIとなってしまったものを採用してしまったバージョンもあります。バージョンは失念してしまいましたが、rpm
コマンドなどで分かるかと思います。
ともかく、RHELが採用するミドルウェアのバージョンは、落とし穴となるものが結構あるようなので要注意です。もちろん「全部自分でコンパイルして入れる」という人には無関係な話かもしれません。
##今後のmod_perlについて
RHELのような動きが他のディストリビューションで出てこないとは言えません。Old Nabbleのフォーラムでは「いつまでもWindows対応のおかげでLinuxのApache2.4でmod_perlが使えないのはオカシイ!Windows対応を切り捨てたApache2.4対応mod_perlを出すべきだ」という意見もあり、それへの賛同も結構ありました。Linux等のPOSIX系OSで動作する用意はできているようです。mod_perlのアップストリームの動向を観察する他ないでしょう。
ただ、世間のLinuxディストリビューションはPerlだけに関心があるわけではなく、最新を追っていくためにApache2.4を取り入れていくことは自然なことでしょう。その際、同様の理由でmod_perlが切り捨てられていくのか、それともmod_perlがApache2.4に「Windows環境でも完全に」サポートされリリースされて円満解決するのか、はたまたWindowsサポートを切り捨てたApache2.4対応mod_perlが出てくるのか、にわかに判断がつかない状況です。
ちなみに2013年12月時点、Subversionのmod_perl http24ブランチに最後にコミットがあったのは10月末です。