Apache httpd : mod_perl の設定2025/11/13 |
|
[mod_perl] をインストールして、Perl スクリプトの実行を高速化します。 |
|
| [1] | [mod_perl] をインストールします。 |
|
www:~ # zypper -n install apache2-mod_perl
|
| [2] | httpd の設定です。 |
|
www:~ #
vi /etc/apache2/conf.d/mod_perl.conf # 最終行に追記 (ステータスページの設定)
<Location /perl-status>
SetHandler perl-script
PerlResponseHandler Apache2::Status
# アクセス許可の設定
Require ip 127.0.0.1 10.0.0.0/24
</Location>
www:~ # a2enmod perl www:~ # a2enmod status www:~ # systemctl restart apache2
|
| [3] | テストスクリプトを作成して [/cgi-perl] ロケーション配下で動作する [PerlRun] モードを動作確認します。 以下のような結果が表示されれば OK です。 |
|
www:~ #
vi /srv/www/cgi-bin/test-mod_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 /srv/www/cgi-bin/test-mod_perl.cgi www:~ # curl https://www.srv.world/cgi-perl/test-mod_perl.cgi number $a = 1 |
| [4] | 実行コードをメモリ上にキャッシュする [Registry] モードの確認です。 [/perl] ロケーション配下で動作します。 [3] で作成したテストスクリプトにアクセスすると、変数の値がメモリ上にキャッシュされているため、以下のようにアクセスする度に値が増加します。 これが意図しない動作であれば、テストスクリプトの例の場合、[Registry] モードでは以下のようにコードを修正する必要があります。 [Registry] モードではこのように変数の扱い方等、注意が必要です。 |
|
www:~ # curl https://www.srv.world/perl/test-mod_perl.cgi number $a = 1 www:~ # curl https://www.srv.world/perl/test-mod_perl.cgi number $a = 2 www:~ # curl https://www.srv.world/perl/test-mod_perl.cgi number $a = 3
www:~ #
vi /var/www/perl/test-mod_perl.cgi #!/usr/bin/perl use strict; use warnings; print "Content-type: text/html\n\n"; my $a = 0; &number($a); sub number { my($a) = @_; $a++; print "number \$a = $a \n"; }www:~ # curl https://www.srv.world/perl/test-mod_perl.cgi number $a = 1 www:~ # curl https://www.srv.world/perl/test-mod_perl.cgi number $a = 1 www:~ # curl https://www.srv.world/perl/test-mod_perl.cgi number $a = 1 |
| [5] | [(サーバーのホスト名 または IP アドレス)/perl-status/] にアクセスすると [mod_perl] のステータスが確認可能です。 |
|
|
| Sponsored Link |
|
|