Я настроил IIS6 с FastCGI для использования php-cgi.exe.
У меня есть несколько php-сайтов сторонних разработчиков, которые я пытаюсь запустить в тестовой среде.
Один из веб-сайтов просто дает мне страницу с ошибкой FastCGI. Это происходит не на каждой странице, просто кажется, что это происходит на некоторых страницах, а другие отображаются правильно.
Я заглянул в
Но никаких результатов, за исключением того, что в журнале веб-сайта IIS упоминается возврат 500 страниц.
Вот как выглядит страница:
Ошибка FastCGI
Обработчик FastCGI не смог обработать запрос. Детали ошибки:
Процесс FastCGI неожиданно завершился. Номер ошибки: -1073741571 (0xc00000fd). Описание ошибки: Неизвестная ошибка Ошибка HTTP 500 - ошибка сервера. Информационные службы Интернета (IIS)
Ответ
По-видимому, сообщение об ошибке означает переполнение стека, поэтому отладка - это сообщение. Я не разработчик PHP, поэтому это был довольно болезненный процесс. Однако мы сузили проблему до запроса Ajax, но я предполагаю, что это может происходить с любым запросом:
Сам запрос заставляет сервер возвращать 500. После проверки запроса с помощью Fiddler мы обнаружили, что запись Cookie в запросе GET содержит элемент PHPSESSID. Если это не учитывать, запрос действительно работает.
Таким образом, ответ на эту проблему (в нашем случае) - не включать PHPSESSID в запрос. Теперь осталось только выяснить, как это сделать :)
Код ошибки -1073741571 (0xc00000fd)
означает переполнение стека. Вам нужно будет отладить свой код.
Для тех, кто ищет ответ на этот вопрос, я потратил около двух часов на "внутреннюю ошибку сервера 500" + PHP + быстрый CGI, и ошибка заключалась в том, что файл web.config находился в папке моего приложения PHP (IIS создал его автоматически).
После удаления файла приложение успешно работало.
Попробуйте поискать на http://forums.iis.net. Кажется, они предлагают вам попробовать обновить PHP, или в приложении есть проблема, которая вызывает сбой PHP или процесса fastCGI.
Удачи.