Как заставить Apache обрабатывать файлы .pl (Perl) с помощью mod_perl?

Я использую Apache 2. Я знаю, как обрабатывать файлы .pl как "cgi-script", но mod_perl предположительно намного быстрее. Я успешно собрал и установил mod_perl, но как мне изменить httpd.conf, чтобы файлы .pl обрабатывались с помощью mod_perl (а не как cgi-скрипт)?


person Community    schedule 03.01.2009    source источник
comment
Это может вам помочь: perl.apache.org/docs/2.0/user /config/config.html   -  person Chris Jester-Young    schedule 03.01.2009


Ответы (3)


Как это сделать, описано в здесь документации mod_perl. В частности, прочтите раздел «Сценарии реестра».

person ChrisN    schedule 03.01.2009

Следующее не проверено мною и может быть добавлено к существующему файлу директивы 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>
person AndrewPK    schedule 17.05.2011

Я почти уверен, что пока у вас загружен модуль, вы можете просто добавить

AddHandler mod_perl .pl

person helloandre    schedule 03.01.2009