Установка 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 (имя для удобства)

clip_image002

После сохранения появится диалоговое окно в котором нужно щелкнуть 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.

clip_image004

Шаг 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, смотрим на полученный результат и улыбаемся :).

clip_image006