Я пытаюсь запустить Apache :: ASP на OSX Lion Server. Я сделал новую установку OSX Lion VM в Fusion 4, установил приложение Xcode (с инструментами командной строки) и выполнил следующие команды оболочки:
sudo perl -MCPAN -e shell
cpan> install CPAN
cpan> install Bundle::Apache::ASP
Я добавил в конец файлы httpd.confg (/Library/Server/Web/Config/apache2/httpd_server_app.conf и
/Library/Server/Web/Config/apache2/httpd_server_app.conf.default):
<Files ~ (\.asp)>
SetHandler perl-script
PerlHandler Apache::ASP
PerlSetVar Global .
PerlSetVar StateDir /tmp/asp
</Files>
Но добавление обработчика set или perlhandler приводит к тому, что Apache не перезагружается. Извлеките их обоих, и Apache запустится, но подает файл .asp как текстовый файл ....
ОБНОВЛЕНИЕ № 1:
Упс, двадцать или тридцать:
sudo apachectl restart
и у меня даже не было запущенного мода Perl. Добавление приведенного ниже в файл httpd.conf заставило Apache запуститься:
LoadModule perl_module libexec/apache2/mod_perl.so
Alias /perl/ /Library/WebServer/Documents/perl/
<Location /perl/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Location>
$ Request -> {Method} теперь будет возвращать значение, но ....
%test = $Request->ServerVariables(); #or $Request->ServerVariables(URL);
%><%= $test %><%
Выводы: Apache :: ASP :: Collection = HASH (0x7f84114c58d8)
ОБНОВЛЕНИЕ № 2:
Некоторые переменные сервера не определены в Apache :: ASP и IIS. Синтаксис немного отличается от ожидаемого. Ниже будут перечислены все доступные серверные переменные ...
my $variables = $Request->{ServerVariables};
print join '<br>', sort keys %$variables;