Как заставить Apache обрабатывать файлы .pl (Perl), используя mod_perl? - PullRequest
7 голосов
/ 03 января 2009

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

Ответы [ 3 ]

6 голосов
/ 03 января 2009

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

2 голосов
/ 18 мая 2011

Следующее не протестировано мной и может быть добавлено в существующий файл директивы 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>
1 голос
/ 03 января 2009

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

AddHandler mod_perl .pl

...