Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

HTTP 502.2 Windows Server, AD и Роли

IIS HTTP 502.2 Bad Gateway: сбои FastCGI и CGI — решение

Обновлено: 28.08.2026 · Официальная документация ↗

Симптомы ошибки IIS 502.2

При открытии веб-приложений на базе PHP, Python или Perl в браузере появляется ошибка: HTTP Error 502.2 - Bad Gateway: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return were ''.

СимптомГде проявляетсяПричина
HTTP 502.2 при тяжелых операцияхPHP / FastCGI приложенияПроцесс php-cgi.exe аварийно упал (Crash) или завершился по таймауту
Пустой ответ от бэкендаБраузер клиентаИнтерпретатор завершился без отправки HTTP-заголовков Content-Type
Event ID 1000 (Application Crash)Журнал ApplicationСбой в стороннем модуле или библиотеке

Пошаговое устранение сбоя FastCGI (HTTP 502.2)

  1. Увеличьте таймауты выполнения FastCGI (Activity Timeout и Request Timeout):
    & "$env:SystemRoot\System32\inetsrv\appcmd.exe" set config -section:system.webServer/fastCgi /[fullPath='C:\PHP\php-cgi.exe'].activityTimeout:300 /commit:apphost; & "$env:SystemRoot\System32\inetsrv\appcmd.exe" set config -section:system.webServer/fastCgi /[fullPath='C:\PHP\php-cgi.exe'].requestTimeout:300 /commit:apphost
  2. Проверьте прямой запуск интерпретатора из консоли: проверьте синтаксис и библиотеки:
    cd C:\PHP; .\php.exe -v; .\php.exe -m
  3. Установите необходимые пакеты Visual C++: скачайте и установите актуальные Microsoft Visual C++ Redistributable (x64 / x86).
  4. Настройте логирование ошибок в php.ini: задайте display_errors = Off, log_errors = On, error_log = "C:\inetpub\logs\php_errors.log", max_execution_time = 300.

Совет: Всегда используйте сборку PHP версии Non-Thread Safe (NTS) x64 для работы под управлением IIS FastCGI. Thread-Safe сборки предназначены для Apache и работают под IIS нестабильно.

💡 Практика специалистов: Ошибка 502.2 при развертывании PHP на чистом сервере в 95% случаев вызвана отсутствием установленного пакета Visual C++ Redistributable (VCRUNTIME140.dll).

Частые вопросы (FAQ)

Почему PHP под IIS должен быть Non-Thread Safe (NTS)?

Модуль FastCGI в IIS является однопоточным диспетчером процессов. Версия NTS оптимизирована для такой архитектуры и обеспечивает максимальную производительность без блокировок.

Как понять, какой именно PHP-файл вызвал ошибку 502.2?

Включите функцию 'Трассировка неудачных запросов' (Failed Request Tracing — FREB) в IIS Manager для кода ответа 502.2.

Что делать, если в логе падает модуль php_opcache.dll?

Увеличьте параметр opcache.memory_consumption в php.ini или временно отключите OPcache для проверки.

Где настроить сопоставление обработчиков FastCGI в IIS?

В консоли IIS Manager выберите сервер -> 'Сопоставления обработчиков' (Handler Mappings) -> модуль FastCgiModule.

Полезные материалы
Рекомендуем