Я пытаюсь заставить 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 как метода выполнения.
У меня была эта проблема, когда я обновил PHP 5.4.14 до 5.5.3 (32-разрядный).
Чтобы исправить это, мне пришлось установить Visual C ++ Redistributable для Visual Studio 2012 Update 3
Я узнал, что мне нужна эта DLL, запустив php -version из консоли, когда мои веб-страницы больше не загружаются после обновления. Что тогда показало, что мне нужен файл MSVCR110.dll, который поставляется с 32-разрядным распространяемым VS-обновлением от MS. Поскольку у меня есть дополнительные обновления, отключенные в окне Обновление окна, я не получил его автоматически.
Они также поставляются в разных вариантах (32-разрядная, 64-битная и ARM) 32-битная, что сработало для меня.
Установите 32-разрядную версию распространяемого для Visual C ++ обновления для Visual Studio 2012 4
НЕ 64-битный
Похоже, что в вашем php есть несколько расширений dll, которые не работают должным образом и принудительно закрывают CGI. Попробуйте прокомментировать все расширения в файле php.ini и посмотреть, будет ли ошибка существовать или нет.
[РЕДАКТИРОВАТЬ 1]
После некоторых битв я узнал, что IIS – это не потокобезопасный веб-сервер, и все расширение, которое вы хотите использовать в php для IIS, должно использовать nts lib для компиляции. Если расширение компилируется с помощью библиотеки потоков и добавляет в IIS, IIS не запускается. В этом случае расширение в потоковом безопасном (используется в apache, я думаю), и не следует добавлять в качестве расширения в IIS
Эта страница, на которую вы пытаетесь сделать что-то интенсивное?
Раньше у меня была эта проблема, и сообщение об ошибке вводило в заблуждение.
Возможно, вы захотите увеличить лимит памяти для этой конкретной страницы. Сначала узнайте о пиковой памяти для этой страницы:
echo memory_get_peak_usage(true);
Затем установите ограничение памяти следующим образом:
ini_set("memory_limit","1024M");
Надеюсь, это поможет!
Я знаю его старую нить, но кто-то может сэкономить на голове.
В 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 не работает, комментируя всю строку.
У меня была эта проблема, когда я настраивал PHP 5.4.17(32-bit)
.
Чтобы исправить это, мне пришлось установить Visual C++ Redistributable
для Visual Studio 2012 Update 4
и он отлично справился после установки этого обновления.
если у вас есть два приложения вроде (ваше приложение, phpmyadmin), просто отключите расширение APC. Надейтесь, что исправить проблему, с которой он работал.
если не просто установить Microsoft visual C ++ 86 и 64
У меня та же проблема, которую я исправил, установив 32- битный Visual C ++, распространяемый для Visual Studio 2012. 64 бит не работает для меня.
Как упоминалось правильно в приведенных выше ответах, это связано с «Распространяемым на Visual C ++», который не установлен или не установлен правильно.
В зависимости от моего опыта по этой проблеме.
1- Сначала позаботьтесь, каждая версия PHP зависит от конкретной версии распространяемой версии Visual C ++ (11,12,14, ..)
так что сначала нужно проверить свою версию PHP с примечаниями в левой части сайта php:
PHP Загрузите страницу для поиска «Какую версию выбрать?» то посмотрите, какая версия VC ++ вам нужна.
2- ВАМ ИСПЫТАТЬ Скачать VC 32 и 64 BOTH. и проверьте, есть ли у вашего ПК уже такой Unistall оба из них (только для той же версии). а затем установите 32 сначала и 64 после. (нет необходимости в каких-либо перезагрузках, если это не запрашивается).
3- Завершите установку php другими шагами для iis, apache или ….
Надеюсь, это поможет вам.