CentOS 6
Sponsored Link

mod_perl を利用する
2014/09/13
 
mod_perl モジュールを有効にして、Perlスクリプトの実行を高速化します。
[1] Perlインタープリタをメモリに常駐させるのみの PerlRunモードの設定
[root@www ~]#
yum -y install mod_perl
[root@www ~]#
vi /etc/httpd/conf.d/perl.conf
# 17行目:コメント解除 ( コードチェックしログに警告を表示 )

PerlSwitches -w
# 26行目:コメント解除 ( 汚染検出モード有効 )

PerlSwitches -T
# 32-38行目:以下のようにコメント解除

Alias /perl /var/www/perl
<Directory /var/www/perl>    
# mod_perl 環境下にするディレクトリ

   SetHandler perl-script    
# 当該ディレクトリ配下は全て perl-script 扱いになる

#   AddHandler perl-script .cgi
   
# 特定の拡張子のみに限定するなら上行をコメントにしてこちらを指定

#   PerlResponseHandler ModPerl::Registry
  
PerlResponseHandler ModPerl::PerlRun
   
# PerlRunモード指定

   PerlOptions +ParseHeaders
   Options +ExecCGI
</Directory>
# 45-51行目:コメント解除 ( mod_perl ステータス確認用 )

<Location /perl-status>
   SetHandler perl-script
   PerlResponseHandler Apache2::Status
   Order deny,allow
   Deny from all
   Allow from
10.0.0.0/24
   
# アクセス許可範囲

</Location>
[root@www ~]#
/etc/rc.d/init.d/httpd restart

Stopping httpd:     [  OK  ]
Starting httpd:     [  OK  ]
[2] 適当に Perl スクリプトを動作させて確認してみてください。
ちなみに mod_perl のステータスは「http://(サーバーのホスト名またはIPアドレス)/perl-status」にアクセスすると 以下のように確認できます。
[3] 実行コードをメモリ上にキャッシュする Registryモードの設定
さらなる高速化が期待できますが、変数の扱い方等、コードの書き方に注意が必要です。
[root@www ~]#
vi /etc/httpd/conf.d/perl.conf
Alias /perl /var/www/perl
<Directory /var/www/perl>
   SetHandler perl-script
#   AddHandler perl-script .cgi
   PerlResponseHandler ModPerl::Registry    
# コメント解除

#
   PerlResponseHandler ModPerl::PerlRun    
# コメントにする

   PerlOptions +ParseHeaders
   Options +ExecCGI
</Directory>
[root@www ~]#
/etc/rc.d/init.d/httpd restart

Stopping httpd:     [  OK  ]
Starting httpd:     [  OK  ]
 
Tweet