it-swarm.com.ru

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

Метод входа анонимный

Войти Пользователь Аноним

Каталог журнала трассировки невыполненных запросов C:\inetpub\logs\FailedReqLogFiles

Я изменил файл PHP.ini, как требуется для использования с IIS, а также переключил его в подробный режим. В C:\inetpub\logs\FailedReqLogs нет никакого поля журнала, и в других сгенерированных файлах журнала нет ни одной ошибки, связанной с этой ошибкой.

Я пробовал другие исправления, которые нашел здесь и в других местах, но пока ничего не получилось.

В некоторых деталях это было: Повторная проверка PHP.ini Настройка fastCGI для работы с PHP в IIS (настройка его для загрузки php.exe) Попытка WinCache в качестве метода исполнения.

22
Vilid

У меня была эта проблема, когда я обновил PHP 5.4.14 до 5.5.3 (32-разрядная версия). 

Чтобы это исправить, мне пришлось установить распространяемый Visual C++ для Visual Studio 2012 обновление 3

Я обнаружил, что мне это нужно DLL, запустив php --version из консоли, когда мои веб-страницы больше не загружаются после обновления. Затем выяснилось, что мне нужен MSVCR110.dll, поставляемый с 32-разрядным распространяемым обновлением VS от MS. Поскольку в Window Update отключены дополнительные обновления, я не получил их автоматически.

Они также бывают разных типов (32-битные, 64-битные и ARM). 32-битные - это то, что мне помогло.

49
b01

Установите 32-разрядный распространяемый Visual C++ для Visual Studio 2012, обновление 4

НЕ 64 бит

9
piris

Кажется, в вашем php есть расширение dll, которое не работает должным образом и заставляет CGI закрыться. Попробуйте прокомментировать все расширения в файле php.ini и посмотрите, будет ли ошибка существовать или нет.

[ПРАВКА 1]

После некоторых трудностей я обнаружил, что IIS не является потокобезопасным веб-сервером, и все расширения, которые вы хотите использовать в php для IIS, должны использовать nts lib для компиляции. Если расширение скомпилировать с поточно-безопасной библиотекой и добавить в IIS, IIS не запустится. В этом случае ваше расширение в потоке безопасно (используется в Apache, я думаю) и не должно добавляться как расширение в IIS

4
A23149577

Эта страница, на которую вы пытаетесь попасть, делает что-то интенсивное?

У меня была эта проблема раньше, и сообщение об ошибке вводило в заблуждение.

Возможно, вы захотите попробовать увеличить ограничение памяти для этой конкретной страницы. Сначала выясните пиковое использование памяти для этой страницы:

echo memory_get_peak_usage(true);

Затем установите свой предел памяти соответствующим образом:

ini_set("memory_limit","1024M");

Надеюсь, это поможет!

3
seb835

У меня была эта проблема, когда я настраивал PHP 5.4.17(32-bit).

Чтобы это исправить, мне пришлось установить Visual C++ Redistributable для Visual Studio 2012 Update 4, и после установки этого обновления все работало нормально.

1
Pacsal

Я знаю, что это старая ветка, но кто-то может спасти от побоев.

В 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 не работает, закомментирование всей строки делает.

1
Donald H.

если у вас есть два приложения типа (ваше приложение, phpmyadmin), просто отключите расширение APC Надеюсь, что это решит проблему это работает со мной 

если не просто установить Microsoft Visual C++ 86 и 64 

0
Basel AlkKaddoumi

У меня та же проблема, которую я исправил, установив 32 бит Visual C++, распространяемый для Visual Studio 2012. 64 бит не работает для меня.

0
LuisG

Как правильно сказано в ответах выше, это связано с «Распространяемым Visual C++», который не установлен или установлен неправильно.

В зависимости от моего опыта в этом вопросе.

1. Сначала позаботьтесь о том, чтобы каждая PHP версия зависела от конкретной распространяемой версии Visual C++ (11,12,14, ..)

поэтому сначала нужно проверить версию PHP с примечаниями на левой стороне php сайта:
PHP Страница загрузки поиск "Какую версию выбрать?" тогда посмотрите, какая версия VC++ вам нужна.

2 - ВЫ ДОЛЖНЫ ЗАГРУЗИТЬ VC 32 и 64 ОБА. и проверьте, есть ли на вашем компьютере, так что Unistall их обоих (только для одной и той же версии). , а затем установить 32 сначала и 64 после. (нет необходимости перезапускать, если он не спрашивает).

3- Завершите установку php другими шагами для iis, Apache или ....

Я надеюсь, что это поможет вам.

0
Mohamed Abulnasr