AlmaLinux9 Apache httpd mod_perlを設定する方法
環境
AlmaLinux release 9.2 (Turquoise Kodkod)
概要
[mod_perl] をインストールして、Perl スクリプトの実行を高速化します。
操作方法
1.[mod_perl] をインストールします
EPEL からインストール
# dnf –enablerepo=epel -y install mod_perl
2.Perl インタープリタをメモリに常駐させるのみの [PerlRun] モードの設定を行います
# vi /etc/httpd/conf.d/perl.conf
# 15行目コードチェックしログに警告を表示 PerlSwitches -w # 24行目 : 検出モード有効 PerlSwitches -T # 30-37行目 : コメント解除して設定を追記する Alias /perl /var/www/perl <Directory /var/www/perl> # ディレクトリ配下は全て perl-script 扱い SetHandler perl-script # 指定拡張子のみ perl-script 扱いにする場合は上行を無効化して当行を追記 AddHandler perl-script .cgi # PerlResponseHandler ModPerl::Registry # PerlRun モード指定行を追記 PerlResponseHandler ModPerl::PerlRun PerlOptions +ParseHeaders Options +ExecCGI </Directory> # 44-48行目 : ステータス確認 <Location /perl-status> SetHandler perl-script PerlResponseHandler Apache2::Status # 任意のアクセス許可範囲を設定 Require ip 127.0.0.1 10.0.0.0/24 # Require host .example.com </Location>
3.httpdを再起動します
# systemctl restart httpd
4.テストスクリプトを作成します
# mkdir /var/www/perl
# vi /var/www/perl/testmod_perl.cgi
#!/usr/bin/perl use strict; use warnings; print "Content-type: text/html\n\n"; my $a = 0; &number(); sub number { $a++; print "number \$a = $a \n"; }
スクリプトを実行する
# chmod 705 /var/www/perl/testmod_perl.cgi # curl https://www.ark.com/perl/test-mod_perl.cgi
5. 実行コードをメモリ上にキャッシュする [Registry] モードの設定を行います
# vi /etc/httpd/conf.d/perl.conf
Alias /perl /var/www/perl <Directory /var/www/perl> # SetHandler perl-script AddHandler perl-script .cgi # Registry モード指定行有効化 PerlResponseHandler ModPerl::Registry # PerlResponseHandler ModPerl::PerlRun PerlOptions +ParseHeaders Options +ExecCGI </Directory>
httdを再起動します
# systemctl reload httpd