Ошибка 500 при новой установке IIS и PHP

32

При попытке запустить файл PHP на Windows Server 2012 и IIS, я получаю ошибку 500. Я не могу найти подробные журналы или что-нибудь. Однако при переходе в диспетчер PHP для IIS и нажатии проверки конфигурации появляется следующая ошибка:

Detailed Error Information:
Module    FastCgiModule 
Notification    ExecuteRequestHandler 
Handler    PHP55_via_FastCGI 
Error Code    0xc0000135 
Requested URL    http://domain.com:80/brkld3ip.php 
Physical Path    drive:\sites\domain.com\brkld3ip.php 
Logon Method    Anonymous 
Logon User    Anonymous 

Я установил PHP с помощью Microsoft Web Platform Installer 5.0 на новой установке Windows Server.

Я новичок в IIS из Linux. Таким образом, я недостаточно «изучен» в IIS, чтобы знать, что происходит. Я пытался обновить C ++ redistributable 2012 update 4, как предлагают несколько веб-сайтов. У кого-нибудь есть другие идеи?

РЕДАКТИРОВАТЬ: Еще одна вещь, которую я проверил, был предел памяти. На одном сайте предлагалось увеличить предел памяти. Без изменений.

РЕДАКТИРОВАТЬ: Вопрос: Нужно ли перезагрузить Windows, чтобы изменения в PHP вступили в силу?

alexander7567
источник
Какая версия PHP?
Кев
Хорошо, когда я установил php 5.5 с этим установщиком Microsoft, он также установил 5.3.
alexander7567

Ответы:

53

Весьма вероятно, что вам не хватает правильной среды выполнения VC ++ для той версии PHP, которую вы используете.

Если вы используете PHP 5.5.x, вам нужно убедиться, что установлена ​​среда выполнения VC ++ 11:

http://www.microsoft.com/en-us/download/details.aspx?id=30679

Убедитесь, что вы скачали и установили версию x86 ( vcredist_x86.exe), PHP в Windows еще не 64-битный.

Если вы используете PHP 5.4.x, вам нужно установить среду выполнения VC ++ 9:

http://www.microsoft.com/en-us/download/details.aspx?id=5582

Кев
источник
1
Вы были правы. Я уже сделал x64, так как это была 64-битная машина. Установил x86 и сразу (перезагрузка не требуется) начал работать. Благодарность! Я ломал голову часами!
alexander7567
Brilliant! Исправил это сразу и для меня. +1
Уилл Эпплби
2
Благодарность! Экземпляр PHP 5.6 требует времени выполнения VC ++ 11 (VS 2012)
wchoward
Благодарность ! Изначально пропустил часть про x86, но после неудачного провала я увидел то, что пропустил, и теперь все работает нормально.
Александр Дано
5
Для тех, у кого есть эта проблема с PHP 5.6 , вам нужна версия Visual C ++ распространяемая для x86 для Visual Studio 2012 Update 4 (vcredist_x86.exe) , которую можно получить на следующей странице: microsoft.com/en-us/download/details .aspx? id = 30679
derekmx271
6

Я был пойман подобным сообщением, и оказалось, что я не установил роль сервера CGI (под IIS -> Разработка приложений).

Из Орбонии
источник
Насколько похоже это сообщение?
Охотник на оленей
Я установил среду выполнения VC ++ 11, но мне также пришлось установить поддержку CGI, чтобы она работала. В Windows 8.1 и IIS 8.5. Найдите это подTurn windows features on or off > Internet information services > application development features > CGI
jxmallett
4

У меня была такая же ошибка для PHP 7.0.3 на сервере 2012 R2 с IIS 8.5.

Решением является установка: распространяемый Visual C ++ для Visual Studio 2015 32bit

Все работало правильно после установки этого.

Tidoy007
источник
1

После установки распространяемого пакета Visual C ++ для Visual Studio 2015 32bit все еще имелась ошибка 500.

Запустил procmon от Microsoft sysinternals и при запросе моей php веб-страницы обнаружил

w3wp.exe C:\PHP\php-cgi.exe "ACCESS DENIED"

w3wp.exe - пул приложений, работающий под IIS

Предоставление разрешения «READ / EXECUTE» конкретному пользователю пула приложений для c: \ php устранило проблему.

грабить
источник