2005-05-28

mod_perlの実験

CGI用に作成したPerlスクリプトはmod_perl環境下で上手く動作しない場合があります。mod_perlが提供するCGIのエミュレーション機能(ModPerl::RegistryまはたModPerl::PerlRun)は完全にCGIとの互換性がありません。CGIとmod_perlではどこがどう違うのでしょうか?mod_perlに関する日本語の参考文献は少なく、http://perl.apache.org/ の英語のドキュメントに頼らざるを得ないのが現状です。尚、CGIをmod_perlに移行する場合、次のURLが参考になります。

http://perl.apache.org/docs/1.0/guide/porting.html
※CGIからmod_perlへの移植:mod_perlコーディングのガイドライン(mod_perl 1.0)

http://perl.apache.org/docs/2.0/user/coding/coding.html
※mod_perlハンドラとスクリプトの書き方(mod_perl 2.0)

また、mod_perlに関しては次の文献があります。

「Practical Mod-Perl」
Stas Bekman , Eric Cholet (2003/05) Oreilly & Associates Inc
※洋書ですがApache2.0/mod_perl 2.0を対象としています

「Apache拡張ガイド サーバサイドプログラミング」
リンカーン・スタイン他 (2000/08) オライリー・ジャパン
※日本語のApacheモジュール/mod_perlの解説書ですが発行年が古いです。(上)/(下)巻があります。

本章の実験は以下の環境で行います。

  • Apache 2.0.53 Windows版
  • ActivePerl 5.8.6.811 Windows版
  • mod_perl 2.0.0-RC4.0 Windows版

mod_perlの設定は「mod_perl;mod_perlのためのApacheの設定」に従います。以下では、いくつかの実験を通してCGIとmod_perlの違いを見て行きます。そのために、同じPerlコードを使用し両者の比較を行います。実験で使用するスクリプトは以下のフォルダに配置します。

D:/WWWRoot/mod/mod_testmod_perlで作動
D:/WWWRoot/mod_testCGI/Perlで作動

実際には、D:/WWWRoot/mod_test は D:/WWWRoot/mod/mod_test のシンボリックリンクです。WindowsでUNIXライクなシンボリックリンクを作るにはジャンクションを使用します。ジャンクションの作成には以下のツールを使用しました。

「リンク作成シェル拡張 for Windows 2000/2003/XP」 Version 1.45 (フリーウエア)
入手先: http://eside.homeip.net/free/symlink2k.html

ジャンクションについては「Apache2/4.Apache Windows版の基本設定;ドキュメントディレクトリのマッピング」を参照して下さい。

実験の内容



最終更新のRSS Last-modified: Fri, 12 Aug 2005 16:43:09 JST (4506d)