Red Hat 9 で mod_perl の導入と、状態の確認

2004-5-29 16:46
このエントリーをはてなブックマークに追加

Red Hat Linux 9 で mod_perl を導入し、その状態を確認したときのメモです。

mod_perl とは

mod_perl は Apache 上で Perl のプログラムを高速に動作させるモジュールです。通常、Perl で書かれた CGI は、リクエストの度に毎回プロセスが立ち上がるため、オーバーヘッドがかかります。mod_perl を導入すれば、mod_perl 上で動作する Perl プログラムは、初回ロード時にコンパイルされ、その後メモリにキャッシュされるので、呼び出し時間が短縮されます。メモリに常駐するので、その分メモリは食いますが、パフォーマンス劇的に改善されます。

よく、PHP や Java に比べて Perl は重くてパフォーマンスが悪いと言われますが、それは mod_perl を使っていない場合です。PHP も Apache に組み込まれているから動作が速いのですし、Java も事前に読み込まれていなければ、起動が遅いのは言うまでもありません。

インストール

Red Hat Linux 9 には mod_perl が附属しています。通常は勝手に入っていますが、インストールされているかどうか確認してみましょう。

  $ rpm -q mod_perl
  mod_perl-1.99_07-5

どういうわけか Red Hat 9 では、安定版の 1.29 ではなく、開発版の 1.99 が入っています。 何も表示されない場合はインストールされていませんので、Red Hat Linux 9 の CD-ROM からインストールします。

  # rpm -ivh mod_perl-1.99_07-5.i386.rpm

Red Hat Linux 9 の場合、これだけで設定は完了です。/etc/httpd/conf/httpd.conf を書き換える必要はありません。なぜなら、/etc/httpd/conf.d/ に perl.conf というファイルが置かれ、これが Apache の起動時に自動的に読み込まれるからです。これは Red Hat 系ディストリビューションのお約束です。

mod_perl の状態確認

mod_perl の状態を確認するには、Perl の Apache::Status モジュールが便利です。通常、このモジュールは mod_perl のパッケージに含まれています。ところが、先述の Red Hat Linux 9 用の RPM には、Apache::Status モジュールが含まれていません。

本来ならば mod_perl の RPM を作り直してインストールしなおしたいところですが、今回はファイル一つなので、直接取ってきました

  # wget -O /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi/Apache/Status.pm \
     http://search.cpan.org/src/GEOFF/mod_perl-1.99_14/lib/Apache/Status.pm

次に、/etc/httpd/conf.d/perl.conf の末尾に次の設定を追加します。

  # vi /etc/httpd/conf.d/perl.conf
  <Location /perl-status>
    SetHandler perl-script
    PerlHandler Apache::Status
  </Location>

この後、Apache を再起動します。

  # service httpd graceful

これで http://server_name/perl-status にアクセスして、次のような画面が表示されれば OK です。

mod_perl の状態確認画面

この中の “Loaded Modules” で、現在読み込まれている Perl プログラムの確認が可能です。”Symbol Table Dump” を利用するには、別途 Devel::Symdump モジュールが必要になります。

注意事項

Apache::Status の出力する内容には、サーバの設定やローカル情報がたくさん含まれています。この内容はクラッカーを助けることになります。かならずアクセス制限をかけるか、確認が終わったら直ちに設定を無効にしましょう。

  • ブックマーク : アクセス: 10,333回
  • カテゴリー : Apache
  • キーワード : , ,

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

33 queries. HTML convert time: 0.081 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン