Apache:mod_perlモジュール
技術ドキュメント目次 -> Apache -> mod_perlモジュール本技術ドキュメントは、2002~2004年頃に作成したものが多いです。
内容が古くなっていることもあるかと思いますが、ご了承ください。
【低価格SSL証明書】弊社運営の低価格SSL証明書販売サイト、翌月末払いなど請求書払いも可能。
Apacheのmod_perlモジュールは、
Perl と Apache を連動させてさまざまな機能を提供するための、
強力なモジュールです。
mod_perl の活用事例としては、
CGIの高速化や、
DBとのコネクションプーリング(ApacheがDBにせつぞくしっぱなしの状態を)が有名ですが、
Apache API を使用して行える制御の基本的には全てが mod_perl を使用して行うことができます。
ここでは、
mod_perl のインストールと動作確認までを駆け足で説明します。
◆ インストール
mod_perlのサイト:http://perl.apache.org/にアクセスして
http://cpan.valueclick.com/modules/by-module/Apache/mod_perl-1.22.tar.gz
をダウンロードします。
(更新されたバージョンが存在したら、そちらをダウンロードしてください。
以下、バージョン 1.22 を前提にして話をすすめます。)
また、(あたりまえですが)mod_perl を使うには perl が必要になりますので、
まず perl が正常にインストールされていることを確認しておいてください。
$ perl -v (バージョンについての情報が正常に出力される) $ |
◆ libwwwの組み込み
mod_perlを動かすためには、libwww モジュールが必要になるので、
Perlに libwwwモジュールを組み込みます。
なお、その際には、
libwwwが依存しているモジュール(libwwwが必要とする各モジュール)も
インストールする必要があります。
CPANモジュールを使用すると、
次のように入力することで モジュールを組み込むことができるので、便利です。
# perl -MCPAN -e shell cpan> install Bundle::LWP (始めて perl -MCPAN -e shell を実行するときは、 対話式に幾つかの項目を入力する必要があります。) |
◆ mod_perlのインストール
mod_perl-1.22.tar.gz をダウンロードしたディレクトリに移動し、次のように入力することで、apache に mod_perl が組み込まれます。
(DSO対応のapacheが、
/usr/local/apache_1.3.22/bin/apxs
としてインストールされている環境に組み込むことを想定しています。
DSO非対応のapacheに組み込む場合の手順は、付属するドキュメントを
参照してください。)
# tar zxvf mod_perl-1.22.tar.gz # cd mod_perl-1.22 # perl Makefile.PL USE_APXS=1 WITH_APXS=/usr/local/apache_1.3.22/bin/apxs EVERYTHING=1 # make # make test # make intall make test と入力した後、 Can't make test with APXS (yet) と表示されます。 |
◆ 動作確認
インストール後、/usr/local/apache_1.3.22/libexec/ ディレクトリに libperl.so が
存在していることを確認してから、
apache を再起動すると、mod_perl が有効になります。
mod_cgi によって、CGIが高速化されたことを簡単に確認するには、
たとえば次のようにしてみてください。
httpd.conf に次の設定を追加します。
(ここでは、/usr/local/apache_1.3.22/htdocs が、
ドキュメントルートのディレクトリであるとします)
PerlModule Apache::Registry <Directory "/usr/local/apache_1.3.22/htdocs/modperlon"> <Files *.cgi> SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On </Files> </Directory> |
上記の設定を行った後、
次の2つのファイル名でまったく同じ perl の CGI を設置します。
/usr/local/apache_1.3.22/htdocs/modperlon/index.cgi
/usr/local/apache_1.3.22/htdocs/modperloff/index.cgi
ここで用意する CGI は、ある程度規模の大きなCGIであるほうが、
下記のパフォーマンス測定がわかりやすい結果になるかもしれません。
ある程度規模の大きなCGIをすぐには用意できない場合は、
非常に大量のコメントが記述されているCGIを用いてもOKです。
(コメントの量が多いと、ファイルサイズが大きくなり、CGIを
ロードするのに必要になるマシンパワーの軽減という
mod_perlのメリットが確認しやすくなります。)
その後、
Apache Bench を使用して、
それぞれの CGI がどれだけのパフォーマンスを出しているか確認します。
$ cd /usr/local/apache_1.3.22/bin $ ./ab -n 100 -c 30 http://(ホスト名)/modperlon/index.cgi $ ./ab -n 100 -c 30 http://(ホスト名)/modperloff/index.cgi |
ab(Apache Bench)の出力結果として表示される
Request Per Second の値(1秒間あたりに幾つのリクエストを処理する
ことができるかを示す値)をもとに、
どちらのCGIがより多くのリクエストを処理できているか確認できます。
■ Apache についての他のドキュメント
- インストール
- htpasswd コマンド
- .htで始まるファイル(ちょっとしたメモ)
- Apache Bench(パフォーマンス測定)
- CGIのnphスクリプト
- ErrorDocument ディレクティブ
- ProxyPass ディレクティブ
- Redirect ディレクティブ
- mod_asisモジュール
- mod_perlモジュール
■ 他のグループのドキュメント
Apache / Linux / FreeBSD / OpenSSL / Perl / HTTPプロトコル / Jakarta Tomcat / Java / NetBSD / Oracle / PostgreSQL / UNIX の C言語 / UNIX のコマンド / Windows / bind / システム運用TIPS