Установка и настройка PHP в IIS 7 на Windows Server 2008
Этот пошаговый гид показывает, как установить и настроить PHP под IIS 7 на Windows Server 2008 с использованием FastCGI. Включены подготовка PHP, настройка FastCGI и сопутствующие проверки, список типичных проблем и контрольный список для администратора.

Быстрые ссылки
- Конфигурация PHP
- Включение FastCGI в IIS 7
- Настройка IIS для запуска PHP через FastCGI
- Тестирование PHP
- Заключение
- Ссылки
Введение
PHP — одна из самых популярных серверных платформ, на которой работают многие приложения и сайты (WordPress, Joomla и др.). Хотя большинство PHP‑систем традиционно развёртывают на Linux/Apache, IIS 7 на Windows Server 2008 также поддерживает запуск PHP через FastCGI. Этот документ объясняет, какие шаги нужны для корректной работы PHP в IIS 7 и как проверить и защитить среду.
Конфигурация PHP
- Скачайте Windows‑бинарники PHP (рекомендуется non thread safe для IIS) и распакуйте их в папку, например: ‘C:PHP’.
- Найдите файл php.ini-production в распакованных файлах и скопируйте его в директорию Windows. Переименуйте в php.ini.

- Откройте php.ini в Блокноте и внесите изменения:
- Раскомментируйте и установите cgi.force_redirect = 0
- Раскомментируйте fastcgi.impersonate = 1
- Раскомментируйте и задайте extension_dir в папку ext в каталоге PHP (например ‘C:PHPext’)
- Установите date.timezone в часовую зону сервера (в строке выше в php.ini есть ссылка с допустимыми значениями)
После этого вы можете запускать PHP из командной строки через php.exe для быстрого тестирования.
Включение FastCGI в IIS 7
IIS 7 включает FastCGI в составе компонентов. Проверьте установленные сервисы роли через: Server Manager > Roles > Web Server.

Убедитесь, что в разделе Application Development установлена опция “CGI”. Если нет — установите и обновите IIS.

Далее установите IIS 7 Administration Pack. При выборе типа установки проверьте, что опция “FastCGI” включена — она добавит интерфейс конфигурации FastCGI в IIS Manager.

Настройка IIS для запуска PHP через FastCGI
- Откройте IIS Manager и перейдите в раздел “FastCGI Settings”.

- Добавьте приложение FastCGI (Add Application).

- Укажите путь к php-cgi.exe в папке, куда вы распаковали PHP. Рекомендуется увеличить параметр InstanceMaxRequests, например до 5000.

- В EnvironmentVariables добавьте переменную PHP_MAX_REQUESTS и задайте значение, равное InstanceMaxRequests.

- Примените настройки и вернитесь в главный экран IIS Manager.
Далее настройте соответствие обработчикам (Handler Mappings):

- Добавьте новый модульный маппинг (Add Module Mapping). Установите:
- Request path: *.php
- Module: FastCgiModule
- Executable: путь к php-cgi.exe (тот же, что в FastCGI Settings)
- Name: например “PHP”

При появлении запроса подтверждения выберите “Yes” — вы разрешаете запуск PHP как FastCGI приложения.

- Примените все изменения, закройте IIS Manager и перезапустите IIS, чтобы настройки вступили в силу.

Важно: установите доступные Microsoft‑патчи/hotfix для корректной работы PHP через FastCGI (ссылка в разделе Ссылки).
Тестирование PHP
Создайте файл phpinfo.php в директории ‘C:Inetpubwwwroot’ со следующим содержимым:

Откройте в браузере на сервере: http://localhost/phpinfo.php — если вы видите страницу с информацией о PHP, настройка выполнена успешно.

Типичные проблемы и как их решать
- Белая страница или 500 ошибка: проверьте логи IIS и убедитесь, что путь к php-cgi.exe корректен. Также проверьте аргументы и права доступа к файлам PHP.
- Ошибки расширений: убедитесь, что extension_dir в php.ini указывает верную папку и нужные DLL доступны.
- Неправильная часовая зона: проверьте date.timezone в php.ini.
- Ошибки прав доступа: процесс IIS_IUSRS и аккаунт пула приложений должны иметь доступ к папке с PHP и к файлам сайта.
- Переполнение пулов процессов: если наблюдаются частые рестарты, уменьшите количество InstanceMaxRequests или отладьте расширения, вызывающие утечки памяти.
Безопасность и жёсткая конфигурация
- Отключите ненужные расширения в php.ini (например, ftp, allow_url_fopen при отсутствии необходимости).
- Включите display_errors только в среде разработки; на продакшене задайте display_errors = Off и фиксируйте ошибки в журнал.
- Ограничьте права на каталог PHP и сайт только необходимыми аккаунтами.
- Обновляйте PHP и патчи ОС регулярно.
Советы по миграции и совместимости
- На Windows Server 2008 используйте версии PHP, проверенные сообществом для IIS 7; на новых версиях Windows и IIS рекомендуются обновлённые релизы PHP.
- Для переносимых приложений проверяйте различия в путях, регистре и поведении файловой системы между Windows и Linux.
Контрольный список ролей (Admin / Dev / Tester)
Администратор:
- Установил PHP‑бинарники в ‘C:PHP’
- Скопировал и настроил php.ini в Windows
- Включил компонент CGI и установил Administration Pack
- Добавил FastCGI приложение и маппинг обработчика
- Перезапустил IIS, применил патчи
Разработчик:
- Проверил phpinfo.php и версии расширений
- Настроил окружение (composer, php.ini для dev)
- Проверил права записи для runtime (логов, uploads)
Тестировщик:
- Проверил загрузку страниц с PHP
- Выполнил базовые сценарии (авторизация, загрузки файлов)
- Проверил поведение при ошибках (логирование, кастомные ошибки)
Мини‑процедура (SOP): запуск и проверка
- Развернуть PHP в выбранную папку.
- Скопировать php.ini и внести базовые изменения (cgi.force_redirect, fastcgi.impersonate, extension_dir, date.timezone).
- Включить CGI в ролях сервера и установить IIS Administration Pack.
- Добавить FastCGI приложение и переменную PHP_MAX_REQUESTS.
- Создать маппинг *.php → FastCgiModule.
- Перезапустить IIS и открыть /phpinfo.php.
- Проверить логи и применить хотфикс Microsoft при необходимости.
Критерии приёмки
- phpinfo.php загружается без ошибок и показывает корректную версию PHP.
- Расширения, указанные в php.ini, загружаются успешно.
- Процессы FastCGI стабильно обслуживают запросы в течение тестовой нагрузки.
- Логи ошибок не содержат критических сообщений, связанных с запуском PHP.
Заключение
После выполнения этих шагов PHP будет корректно работать в IIS 7 на Windows Server 2008. Вы получите возможность разворачивать и поддерживать PHP‑приложения на платформе Windows, соблюдая практики безопасности и мониторинга.
Ссылки
- Download PHP Windows Binaries (non thread safe)
- Download IIS 7 Administration Pack
- Download PHP Hotfix for IIS 7 FastCGI ( x86 / x64)
Фактбокс — ключевые параметры
- Рекомендованный InstanceMaxRequests: 5000
- Переменная окружения: PHP_MAX_REQUESTS (совпадает с InstanceMaxRequests)
- Основной модуль IIS: FastCgiModule
Важное: перед обновлением PHP или Windows сначала протестируйте изменения в тестовом окружении.
Краткое резюме и действия после установки — см. контрольные списки выше.
Похожие материалы
WhatsApp Communities: создание и управление
Как найти концерты в Spotify через Live Events
Уведомление при 100% зарядке iPhone
Локальные возможности Google Maps — руководство
Как отключить уведомления Instagram