如何使用mod_perl使Apache处理.pl(Perl)文件?

时间:2009-01-03 19:40:22

标签: perl apache mod-perl

我正在使用Apache 2.我知道如何将.pl文件作为“cgi-script”处理,但mod_perl应该更快。我成功构建并安装了mod_perl,但是如何更改httpd.conf以便.pl文件将由mod_perl处理(而不是作为cgi-script)?

3 个答案:

答案 0 :(得分:6)

mod_perl文档here中描述了如何执行此操作。特别是,请阅读“注册表脚本”部分。

答案 1 :(得分:2)

以下是我自己未经测试的,可以添加到现有的vhost指令文件

PerlModule ModPerl::Registry
<Files ~ "\.(pl|cgi)$">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlSendHeader On
</Files>

然后执行任何目录中的任何.pl或.cgi文件。

由于安全原因,我通常如何做到这一点:

PerlModule ModPerl::Registry
<Directory /opt/myawesomescripts/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
AllowOverride None
</Directory>

如果您需要,之前的方法将拒绝目录浏览,您应该执行以下操作:

PerlModule ModPerl::Registry
<Directory /var/www/>
Options FollowSymLinks MultiViews ExecCGI Indexes
AddHandler perl-script .cgi .pl
PerlResponseHandler ModPerl::Registry
AllowOverride None
Order allow,deny
allow from all
</Directory>

答案 2 :(得分:1)

我很确定只要您加载了模块,就可以添加一个

AddHandler mod_perl .pl