Установка Perl на IIS 7.x
Требования
Ставить будем на IIS 7.x, т.е. ОС должна быть Vista/Windows 7/Windows Server 2008/R2.
Для установки на IIS берем ActiveState ActivePerl. ISAPI расширение есть только для x86 версии Perl, поэтому будем ставить 32-битную версию.
Шаг 1. Установка ActivePerl
Запустить мастер установки, указать директорию (у меня C:\Web\Perl86\), оставить все остальные настройки по умолчанию и установить ActivePerl. Установщик ActivePerl, к сожалению, не пропишет настройки для IIS 7.x, поэтому придется пройти следующие шаги.
Шаг 2. Настройка Perl на IIS 7.x
Для начала нужно связать требуемое расширение с ISAPI модулем perex30.dll, для этого в оснастке IIS Manager для сайта, для которого нужно настроить поддержку Perl, нужно выбрать Handler Mappings, затем справа в панели задач выбрать Add Module Mapping… и ввести необходимые данные в открывшийся диалог.
- Request Path: *.pl (расширение для обработки Perl)
- Module: IsapiModule (тип модуля)
- Executable: C:\Web\Perl86\bin\PerlEx30.dll (само расширение)
- Name: PerlISAPI (имя для удобства)
После сохранения появится диалоговое окно в котором нужно щелкнуть Yes, чтобы разрешить это ISAPI расширение.
Если у вас 32-битрая ОС, то на этом настройка закончена. Если 64-битная, то еще один простой шаг описан дальше.
Шаг 3. Настройка Application Pool (только для систем x64)
В IIS Manager нужно открыть Application Pool, в рамках которого работает веб-сайт для которого настраивается Perl. Например, это может быть DefaultAppPool, если поддержка Perl настроена для веб-сайта по умолчанию.
В списке Application Pool’ов в IIS Manager нужно выбрать соответствующий пул и справа в списке задач щелкнуть по ссылке Advanced Settings… и в открывшемся окне установить True для настройки Enable 32-Bit Applications.
Шаг 4. Проверяем установку Perl
Разумеется, пишем приложение Hello World!
Создаем файл test.pl в директории сайта, пишем туда что-то вроде:
$url = "https://$ENV{SERVER_NAME}$ENV{URL}";
print <<ENDOFTEXT;
HTTP/1.0 200 OK
Content-Type: text/html
<HTML><HEAD><TITLE>Привет!</TITLE></HEAD><BODY><H1>$url</H1></BODY></HTML>
ENDOFTEXT
exit(0);
Обращаемся по адресу localhost/test.pl, смотрим на полученный результат и улыбаемся :).