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

Быстрый план действий
- Скачайте PHP Windows Binaries (non thread safe).
- Распакуйте в каталог, например
C:\PHP. - Скопируйте и отредактируйте
php.ini(параметры для FastCGI и пути к расширениям). - Установите расширение IIS 6 FastCGI.
- Настройте
fcgiext.iniи разрешите FastCGI в консоли IIS. - Добавьте маппинг для
.phpи перезапустите IIS. - Создайте
phpinfo.phpи проверьте через браузер.
Зачем запускать PHP под IIS 6
PHP — популярная серверная платформа для приложений и CMS. Хотя чаще её запускают на Linux/Apache, IIS позволяет использовать существующую инфраструктуру Windows и интегрировать PHP в привычные инструменты администрирования.
Важно: IIS 6 по умолчанию не включает FastCGI. FastCGI даёт баланс между производительностью и стабильностью по сравнению с CGI.
Конфигурирование PHP
Скачайте Windows-версию PHP (non thread safe). Для IIS 6 используйте non thread safe сборку.
Распакуйте архив в каталог на диске, например
C:\PHP.Скопируйте файл
php.ini-productionв папку Windows и переименуйте вphp.ini:- Откройте
C:\Windows\php.iniв Блокноте и внесите изменения.
- Откройте
Обязательные правки в
php.ini:- Раскомментируйте и установите
cgi.force_redirect = 0. - Раскомментируйте
fastcgi.impersonate = 1. - Укажите
extension_dirна подпапкуext, напримерextension_dir = "C:\\PHP\\ext". - Установите
date.timezoneв зону вашего сервера (напримерEurope/Moscow). Список допустимых значений доступен в документации PHP.
- Раскомментируйте и установите
После этих шагов на командной строке сервера можно запускать C:\PHP\php.exe для выполнения PHP-скриптов вручную.

Установка расширения FastCGI для IIS 6
- Скачайте и установите IIS 6 FastCGI Extension. Установщик обычно не требует взаимодействия.

- После установки откройте файл
C:\Windows\system32\inetsrv\fcgiext.iniи добавьте или отредактируйте секцию Types. Пример содержимого:
[Types]
php=PHP
[PHP]
ExePath=C:\PHP\php-cgi.exe
InstanceMaxRequests=5000
EnvironmentVars=PHP_MAX_REQUESTS:5000- Подстройте значения под нагрузку и ограничения вашего окружения. Обратите внимание на корректность путей и прав доступа.

Настройка IIS для запуска PHP через FastCGI
- Откройте консоль управления IIS (IIS Manager). В разделе Web Service Extensions убедитесь, что FastCGI Handler разрешён (Allowed).

- Откройте свойства групп сайтов (Web Sites). На вкладке Home Directory нажмите кнопку Configuration.

- Добавьте маппинг для расширения
.phpи укажите исполняемый файл FastCGI (DLL/Exe) или укажите обработчик, соответствующийfcgiext.ini.

- Примените изменения и перезапустите IIS командой
iisresetили через консоль управления.
Тестирование PHP
- В каталоге веб-сервера создайте файл
C:\Inetpub\wwwroot\phpinfo.phpс содержимым:

- Откройте в браузере на сервере адрес:
http://localhost/phpinfo.phpЕсли страница загрузилась и показала конфигурацию PHP, то установка прошла успешно.

Типичные ошибки и способы их устранения
- Страница скачивается вместо исполнения — вероятно не настроен маппинг
.phpили FastCGI не включён. - 500 Internal Server Error — проверьте логи IIS и Windows Event Viewer, убедитесь, что
ExePathуказан верно иphp-cgi.exeдоступен. - Ошибки расширений — проверьте
extension_dirи наличие нужных DLL в папкеext. - Проблемы с правами доступа — учтите, под каким пользователем работает IIS; для доступа к файлам и кэшу PHP нужны соответствующие NTFS-права.
Безопасность и эксплуатация
- Не используйте
php.ini-developmentна продакшн-серверах;php.ini-production— лучший старт. - Отключите display_errors в продакшне и логируйте ошибки в файл.
- Настройте права на каталоги сессий и временных файлов так, чтобы минимизировать привилегии.
- Регулярно обновляйте PHP (учтите, что современный PHP уже не поддерживает Windows Server 2003; план обновления ОС/Платформы обязателен).
Важно: поддержка Windows Server 2003 завершена. По возможности планируйте миграцию на поддерживаемую ОС.
Резервное откатывание и план действий при инциденте
- Перед изменениями сделайте резервную копию
php.ini,fcgiext.iniи экспорт конфигурации IIS. - Если после изменений сайт упал, откатите
fcgiext.iniиphp.iniк сохранённым копиям. - Перезапустите IIS и проверьте Event Viewer и логи IIS для диагностики.
- Восстановите по шагам, проверяя работоспособность после каждого изменения.
Контрольные тесты и критерии приёмки
- PHP возвращает страницу
phpinfo()без ошибок. - Базовое приложение (например WordPress) корректно устанавливается и работает.
- Логи не содержат повторяющихся фатальных ошибок PHP или FastCGI.
- Производительность удовлетворительна: время ответа шаблонной страницы < 1 с в типичном окружении (оценка в вашей инфраструктуре).
Роли и чеклисты перед запуском в продакшен
Администратор сервера
- Скачать и распаковать PHP в
C:\PHP. - Настроить
php.iniи указатьextension_dir. - Установить FastCGI и настроить
fcgiext.ini. - Настроить маппинг
.phpв IIS и перезапустить сервис.
Разработчик
- Проверить совместимость кода с используемой версией PHP.
- Протестировать приложение в тестовой среде под IIS.
- Подготовить конфигурационные файлы и список необходимых расширений.
Оценщик безопасности
- Проверить отключение display_errors в продакшне.
- Провести проверку прав на каталоги сессий и временных файлов.
- Оценить необходимость обновления ОС и PHP.
Мини-методология при внедрении
- Подготовка: резервные копии и тестовый стенд на копии конфигурации.
- Установка: PHP -> FastCGI -> конфигурация IIS.
- Тестирование: базовый phpinfo(), функциональные тесты приложения.
- Наблюдение: мониторинг логов и показателей в первые 24–72 часа.
Краткое резюме
После завершения вы получите работающую среду PHP под IIS 6 на Windows Server 2003. Убедитесь, что все пути и права заданы корректно, и что FastCGI разрешён в консоли IIS. Планируйте миграцию с устаревшей ОС, так как она несёт риски безопасности и совместимости.
Ссылки
- Загрузить PHP Windows Binaries (non thread safe)
- Загрузить IIS 6 FastCGI Extension
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone