Установка Perl в IIS 6 на Windows Server 2003

Быстрые ссылки
- Копирование бинарников Perl
- Настройка IIS 6 для запуска Perl-скриптов
- Тестирование Perl
- Устранение неполадок
- Альтернативные подходы
- Контрольный список
- Словарь терминов
- Заключение
- Ссылки
Введение
Perl — популярный скриптовый язык, часто используемый для CGI-приложений на веб-серверах. На Windows Server 2003 с IIS 6 можно настроить выполнение Perl-скриптов через CGI с помощью нескольких конфигурационных шагов. Ниже — пошаговая инструкция и полезные дополнения для эксплуатации и отладки.
Ключевые понятия
- IIS — Internet Information Services, веб-сервер от Microsoft.
- CGI — Common Gateway Interface, способ запуска программ на сервере по HTTP-запросу.
- ActivePerl / ActiveState — распространённый дистрибутив Perl для Windows.
1. Копирование бинарников Perl
- Скачайте дистрибутив ActivePerl от ActiveState. Рекомендуется скачать ZIP-пакет (AS zip), а не инсталлятор, если вы хотите управлять расположением вручную.
- Распакуйте файлы в папку на сервере, например: C:\perl
Совет: распаковка ZIP даёт больше контроля над путями и проще для переносимых конфигураций.
2. Настройка IIS 6 для запуска Perl-скриптов
Откройте Internet Information Services (IIS) Manager и выполните следующие шаги.
2.1. Добавление Web Service Extension
- В IIS Manager перейдите на узел “Web Service Extensions”.
- Добавьте новое расширение (Add a new extension) со следующими параметрами:
- Extension name: Perl CGI
- Required files: C:\perl\bin\perl.exe “%s” %s
- Status: Allowed
Примените изменения.

Важно: путь к perl.exe должен соответствовать тому, куда вы распаковали файлы. Если вы использовали другую папку — укажите её.
2.2. Настройка сопоставления расширений (Handler mappings)
- Щёлкните правой кнопкой по узлу “Web Sites” и выберите Properties.
- На вкладке “Home Directory” нажмите “Configuration…”.
- В разделе Application mappings добавьте новое сопоставление для .pl:
- Executable: C:\perl\bin\perl.exe “%s” %s
- Extension: .pl
- Verbs: GET,HEAD,POST
- Поставьте галочку “Script engine” (если доступно)
Сохраните и примените изменения.

Аналогично добавьте сопоставление для .cgi, если вы планируете использовать это расширение:
- Executable: C:\perl\bin\perl.exe “%s” %s
- Extension: .cgi
- Verbs: GET,HEAD,POST
- Галочка “Script engine”
Примените изменения.

2.3. Перезапуск IIS
После внесения изменений выполните в командной строке на сервере:
iisresetЭто гарантирует, что конфигурация перечитана и активна.

3. Тестирование Perl
Создайте два файла в каталоге сайта, например в C:\Inetpub\wwwroot: test.pl и test.cgi с таким содержимым (используйте корректные обратные слеши):
#!c:\perl\bin\perl.exe
use strict;
use CGI;
my $test = new CGI;
print $test->header("text/html"), $test->start_html("Perl Test");
print $test->h1("Perl is working!");
print $test->end_html;Откройте в браузере на сервере адреса:
Если всё настроено верно, вы увидите страницу с заголовком «Perl is working!». Если появляются ошибки, см. раздел “Устранение неполадок”.

4. Устранение неполадок
Частые причины ошибок и как их проверять:
- 500 Internal Server Error
- Проверьте права доступа к файлу и папке (IUSR и учетная запись IIS должны иметь права чтения и исполнение).
- Убедитесь, что путь к perl.exe указан правильно и файл существует.
- Посмотрите логи IIS (обычно в %SystemDrive%\Windows\System32\LogFiles) и Windows Event Viewer.
- 404 Not Found
- Файл отсутствует в каталоге сайта или неверный URL.
- Некорректный вывод или пустая страница
- Ошибки в Perl-скрипте; запустите скрипт локально из командной строки для диагностики.
- Проблемы с кодировкой
- Убедитесь, что скрипт выводит корректный Content-Type и кодировку при необходимости.
Дополнительные проверки:
- Запустите C:\perl\bin\perl.exe test.pl из командной строки для проверки синтаксиса.
- Проверьте, не блокирует ли антивирус исполнение perl.exe.
- На 64‑битной системе учитывайте совместимость 32/64 бит.
5. Альтернативные подходы и когда они нужны
- Использовать инсталлятор ActivePerl вместо ZIP — быстрее, автоматическая регистрация путей.
- Strawberry Perl — альтернатива ActivePerl с минимальными отличиями; удобна для компиляции CPAN-модов с нативными расширениями.
- FastCGI или ISAPI — если требуется производительность выше стандартного CGI, рассмотрите FastCGI (меньше накладных расходов на запуск процесса).
- Перенос на современный стек — если возможно, рассмотрите перенос на современный веб-сервер (IIS более новых версий, nginx, Apache) или на язык/фреймворк с поддержкой long-running процессов.
6. Практические рекомендации по безопасности
- Не запускайте CGI-скрипты с правами администратора.
- Ограничьте записи в каталогах, где находятся скрипты.
- Валидируйте входные данные в скриптах, избегайте вызова shell-команд с пользовательскими параметрами.
- Отключайте ненужные Web Service Extensions.
7. Контрольный список (для быстрого запуска)
Администратору:
- Распаковал Perl в C:\perl или другой согласованный путь.
- Добавил Web Service Extension: Perl CGI с путём к perl.exe.
- Настроил сопоставления .pl и .cgi.
- Выполнил iisreset.
Разработчику:
- Поместил тестовый script в C:\Inetpub\wwwroot.
- Запустил тест из браузера и/или консоли.
- Проверил логи при ошибке.
Специалисту по безопасности:
- Проверил права NTFS и разрешения IIS.
- Ограничил возможность записи в каталоги с кодом.
8. Критерии приёмки
- Тестовые URL (/test.pl и /test.cgi) возвращают HTML с заголовком “Perl is working!”.
- Нет ошибок 500/404 при корректном запросе.
- Логи не содержат повторяющихся критических ошибок после перезапуска.
9. Короткий словарь
- CGI — интерфейс запуска приложений по HTTP.
- Web Service Extension — механизм IIS 6 для разрешения/запрета исполняемых расширений.
- iisreset — утилита для перезапуска служб IIS.
10. Заключение
Настройка Perl в IIS 6 на Windows Server 2003 сводится к трём шагам: установка/копирование бинарников, разрешение расширения в IIS и сопоставление расширений .pl/.cgi с perl.exe. Дополнительные меры — тестирование, мониторинг логов и настройка безопасности — помогут поддерживать стабильную и безопасную эксплуатацию.
Ссылки
- Скачать ActivePerl (AS Zip Package) — ActiveState
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone