Я установил новый сервер Apache 2.2.15 на Windows Server 2008 R2 с mod_perl (mod perl v2.0.4 / perl v5.10.1). Mod_perl и Perl 5.10 были установлены и загружены без проблем. Однако, несмотря на мою конфигурацию, модуль mod_perl не может распознать и выполнить мой файл .pl, вместо этого он предпочитает распечатать исходный код perl. Что я сделал не так, и как заставить perl обрабатывать мой скрипт pl вместо отправки его клиенту?
Моя конфигурация:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot "C:\Program Files (x86)\AWStats\wwwroot"
ServerName analysis.example.com
ServerAlias analysis.example.com
ErrorLog "logs/analysis.example.com-error.log"
CustomLog "logs/analysis.example.com-access.log" common
DirectoryIndex index.php index.htm index.html
PerlSwitches -T
<Directory "C:\Program Files (x86)\AWStats\wwwroot">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "C:\Program Files (x86)\AWStats\wwwroot\cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
<FilesMatch "\.pl$">
SetHandler perl-script
# #PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</FilesMatch>
</directory>
</VirtualHost>
Огромное спасибо за помощь!
Я полагаю, вы смотрели на эта страница? Вы уверены, что правильно загружаете mod_perl?
Я не уверен, имеет ли это какое-то значение, но вам, по крайней мере, приходилось использовать косую черту для путей в Apache, поэтому, например, измените "C:\Program Files (x86)\AWStats\wwwroot\cgi-bin"
к "C:/Program Files (x86)/AWStats/wwwroot/cgi-bin"
. Я также заметил, что ваш </directory>
не капитализирован, не уверен, что это имеет значение.
Вы также можете попробовать использовать директивы вместо директив, чтобы они изменились на "" и "" соответственно.