IIS 7.5 Ошибка PHP "Процесс FastCGI неожиданно завершился"
Я пытаюсь заставить PHP работать с IIS 7.5 и немного ударил блокпост. Всякий раз, когда я пытаюсь загрузить страницу, я получаю следующую ошибку:
"Ошибка HTTP 500.0 - Внутренняя ошибка сервера
C:\Program Files\PHP\php.exe - Процесс FastCGI неожиданно завершился "
Модуль FastCgiModule
Уведомление ExecuteRequestHandler
Обработчик PHP_via_FastCGI
Код ошибки 0x00000000
Запрошенный URL * http://localhost: 80/index.php
Физический путь C:\inetpub\wwwroot\index.php
Метод входа в систему Anonymous
Пользователь анонимного входа
Ошибка журнала журнала трассировки C:\inetpub\logs\FailedReqLogFiles
Я изменил файл PHP.ini, как требуется для использования с IIS, а также переключил его в режим подробностей. В C:\inetpub\logs\FailedReqLogs нет ни одного журнала, и ни одна из этих ошибок не связана с другими файлами журнала.
Я пробовал другие исправления, которые я нашел здесь и в других местах, но пока ничего не удалось.
В некоторых деталях это были:
повторная проверка PHP.ini
Настройка fastCGI для работы с PHP в IIS (настройка его для загрузки php.exe)
Попытка WinCache как метода выполнения.
Ответы
Ответ 1
У меня была эта проблема, когда я обновил PHP 5.4.14 до 5.5.3 (32-разрядный).
Чтобы исправить это, мне пришлось установить Visual С++ Redistributable для Visual Studio 2012 Update 3
Я узнал, что мне нужна эта DLL, запустив php -version с консоли, когда мои веб-страницы больше не загружаются после обновления. Что тогда показало, что мне нужен файл MSVCR110.dll, который поставляется с 32-разрядным распространяемым VS-обновлением от MS. Поскольку у меня есть дополнительные обновления, отключенные в окне Обновление окна, я не получил его автоматически.
Они также поступают в разных вариантах (32-разрядная, 64-разрядная и ARM) 32-разрядная версия для меня.
Ответ 2
Установите 32-разрядный Visual С++ Redistributable для обновления Visual Studio 2012 4
НЕ 64-разрядный
Ответ 3
Кажется, что в вашем php есть некоторое расширение dll, которое не работает должным образом и принудительно закрывает CGI. Попробуйте прокомментировать все расширения в файле php.ini и посмотреть, будет ли ошибка существовать или нет.
[ИЗМЕНИТЬ 1]
После некоторых битв я узнал, что IIS - это не потокобезопасный веб-сервер, и все расширение, которое вы хотите использовать в php для IIS, должно использовать nts lib для компиляции. Если расширение компилируется с помощью библиотеки потоков и добавляет в IIS, IIS не запускается. В этом случае ваше расширение в потоковом безопасном (используется в apache, я думаю) и не следует добавлять как расширение в IIS
Ответ 4
Эта страница, на которую вы пытаетесь сделать что-нибудь интенсивное?
У меня была эта проблема раньше, и сообщение об ошибке вводит в заблуждение.
Возможно, вы захотите увеличить лимит памяти для этой конкретной страницы. Сначала найдите пиковое использование памяти для этой страницы:
echo memory_get_peak_usage(true);
Затем установите предел памяти соответствующим образом:
ini_set("memory_limit","1024M");
Надеюсь, что это поможет!
Ответ 5
Я знаю его старую нить, но кто-то может сэкономить несколько голов.
В php.ini, изменяя
; Whether or not to enable the dl() function. The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
; http://php.net/enable-dl
enable_dl = Off
к
; Whether or not to enable the dl() function. The dl() function does NOT work
; properly in multithreaded servers, such as IIS or Zeus, and is automatically
; disabled on them.
; http://php.net/enable-dl
;enable_dl = Off
Если enable_dl = Off не работает, комментирует всю строку.
Ответ 6
У меня была эта проблема, когда я настраивал PHP 5.4.17(32-bit)
.
Чтобы исправить это, мне пришлось установить Visual C++ Redistributable
для Visual Studio 2012 Update 4
, и он отлично работал после установки этого обновления.
Ответ 7
Если у вас есть два приложения вроде (ваше приложение, phpmyadmin), просто отключите расширение APC
Надеюсь, что исправить проблему
он работал со мной
если не просто установить Microsoft Visual С++ 86 и 64
Ответ 8
У меня та же проблема, которую я исправил, установив бит 32 Visual С++, распространяемый для Visual Studio 2012. 64 бит не работает для меня.
Ответ 9
Как правильно сказано в приведенных выше ответах, это связано с "Распространяемым Visual С++", которые не установлены или не установлены правильно.
В зависимости от моего опыта по этой проблеме.
1- Сначала позаботьтесь, каждая версия PHP зависит от конкретной версии распространяемой версии Visual С++ (11,12,14,..)
Итак, сначала нужно проверить версию PHP с примечаниями в левой части сайта php:
Страница загрузки PHP
найдите "Какую версию выбрать?" затем посмотрите, какая версия VС++ вам нужна.
2. У ВАС ЕСТЬ скачать VC 32 и 64 BOTH. и проверьте, есть ли у вашего ПК уже такой Unistall оба из них (только для той же версии).
а затем установите 32 сначала и 64 после. (нет необходимости в каких-либо перезагрузках, если он не просит).
3. Завершите установку php другими шагами для iis, apache или....
Надеюсь, это поможет вам.