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

 

AlmaLinux 9

Posted by arkgame