Гид по технологиям

Установка и настройка PHP в IIS 7 на Windows Server 2008

5 min read DevOps Обновлено 23 Dec 2025
Установка PHP в IIS 7 на Windows Server 2008
Установка PHP в IIS 7 на Windows Server 2008

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

Логотип инструкции: Как установить PHP в IIS 7 на Windows Server 2008

Быстрые ссылки

  • Конфигурация 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

  1. Скачайте Windows‑бинарники PHP (рекомендуется non thread safe для IIS) и распакуйте их в папку, например: ‘C:PHP’.
  2. Найдите файл php.ini-production в распакованных файлах и скопируйте его в директорию Windows. Переименуйте в php.ini.

Копирование php.ini в системную папку Windows

  1. Откройте 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.

Выбор ролей IIS в Server Manager

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

Установка компонента CGI для IIS

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

Установка IIS 7 Administration Pack с компонентом FastCGI

Настройка IIS для запуска PHP через FastCGI

  1. Откройте IIS Manager и перейдите в раздел “FastCGI Settings”.

Экран настроек FastCGI в IIS Manager

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

Добавление приложения FastCGI

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

Настройка пути к php-cgi.exe и параметров FastCGI

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

Добавление переменной PHP_MAX_REQUESTS для FastCGI

  1. Примените настройки и вернитесь в главный экран IIS Manager.

Далее настройте соответствие обработчикам (Handler Mappings):

Раздел Handler Mappings в IIS

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

Добавление модуля FastCgiModule для PHP

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

Подтверждение добавления обработчика PHP

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

Перезапуск IIS для применения изменений

Важно: установите доступные Microsoft‑патчи/hotfix для корректной работы PHP через FastCGI (ссылка в разделе Ссылки).

Тестирование PHP

Создайте файл phpinfo.php в директории ‘C:Inetpubwwwroot’ со следующим содержимым:

Создание файла phpinfo.php в корне сайта

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

Страница phpinfo, подтверждающая работу PHP в IIS

Типичные проблемы и как их решать

  • Белая страница или 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): запуск и проверка

  1. Развернуть PHP в выбранную папку.
  2. Скопировать php.ini и внести базовые изменения (cgi.force_redirect, fastcgi.impersonate, extension_dir, date.timezone).
  3. Включить CGI в ролях сервера и установить IIS Administration Pack.
  4. Добавить FastCGI приложение и переменную PHP_MAX_REQUESTS.
  5. Создать маппинг *.php → FastCgiModule.
  6. Перезапустить IIS и открыть /phpinfo.php.
  7. Проверить логи и применить хотфикс 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 сначала протестируйте изменения в тестовом окружении.

Краткое резюме и действия после установки — см. контрольные списки выше.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

WhatsApp Communities: создание и управление
Мессенджеры

WhatsApp Communities: создание и управление

Как найти концерты в Spotify через Live Events
Музыка

Как найти концерты в Spotify через Live Events

Уведомление при 100% зарядке iPhone
iPhone

Уведомление при 100% зарядке iPhone

Локальные возможности Google Maps — руководство
Карты

Локальные возможности Google Maps — руководство

Как отключить уведомления Instagram
Социальные сети

Как отключить уведомления Instagram

Атака через цепочку поставок: SolarWinds и трояны
Кибербезопасность

Атака через цепочку поставок: SolarWinds и трояны