以前 mod_perl をインストールしようとして、結局うまくいかないまま大分時間が経ちましたが、久しぶりにチャレンジしてみました。
今回は、「Apache + mod_perlでCGIを使うには?」を参考にさせてもらいました。
apache は DSO 対応でコンパイル済みなので、以下のオプションで mod_perl をコンパイル。
perl Makefile.PL \\
USE_APXS=1 \\
WITH_APXS=/usr/local/apache/bin/apxs \\
EVERYTHING=1
httpd.conf は以下のように設定。
LoadModule perl_module libexec/libperl.so
AddModule mod_perl.c
<IfModule mod_perl.c>
Alias /perl/ "/usr/local/www/perl/"
<Directory "/usr/local/www/perl/">
Options ExecCGI
<Files *.pl>
SetHandler perl-script
PerlHandler Apache::Registry
PerlSendHeader On
</Files>
</Directory>
</IfModule>
テストしたスクリプトは以下のとおり。
httpd.conf で指定した /usr/local/www/perl 以下に置きます。
#!/usr/local/bin/perl
use strict;
print("Content-Type: text/html\\n\\n");
print("\\n");
print("\\n");
print("\\n");
print("\\n");
print("hello mod_perl world\\n");
print("\\n");
print("\\n");
今までうまくいかなかったのが嘘のように、あっさりと「hello mod_perl world」が表示されました。
今回は、「Apache + mod_perlでCGIを使うには?」を参考にさせてもらいました。
apache は DSO 対応でコンパイル済みなので、以下のオプションで mod_perl をコンパイル。
perl Makefile.PL \\
USE_APXS=1 \\
WITH_APXS=/usr/local/apache/bin/apxs \\
EVERYTHING=1
httpd.conf は以下のように設定。
LoadModule perl_module libexec/libperl.so
AddModule mod_perl.c
<IfModule mod_perl.c>
Alias /perl/ "/usr/local/www/perl/"
<Directory "/usr/local/www/perl/">
Options ExecCGI
<Files *.pl>
SetHandler perl-script
PerlHandler Apache::Registry
PerlSendHeader On
</Files>
</Directory>
</IfModule>
テストしたスクリプトは以下のとおり。
httpd.conf で指定した /usr/local/www/perl 以下に置きます。
#!/usr/local/bin/perl
use strict;
print("Content-Type: text/html\\n\\n");
print("\\n");
print("\\n");
print("\\n");
print("\\n");
print("hello mod_perl world\\n");
print("\\n");
print("\\n");
今までうまくいかなかったのが嘘のように、あっさりと「hello mod_perl world」が表示されました。