Błąd 500 przy nowej instalacji IIS i PHP

32

Podczas próby uruchomienia pliku PHP na Windows Server 2012 i IIS ciągle pojawia się błąd 500. Nie mogę znaleźć żadnych szczegółowych dzienników ani niczego. Jednak po przejściu do Menedżera PHP dla usług IIS i kliknięciu opcji Sprawdź konfigurację pojawia się następujący błąd:

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 

Zainstalowałem PHP przy użyciu Microsoft Web Platform Installer 5.0 na nowej instalacji Windows Server.

Jestem nowym użytkownikiem usług IIS pochodzących z systemu Linux. Nie jestem więc wystarczająco „nauczony” w IIS, aby wiedzieć, co się dzieje. Próbowałem zaktualizować redystrybucyjną wersję C ++ aktualizacji 4 2012, jak sugeruje kilka stron internetowych. Czy masz jeszcze jakieś pomysły?

EDYCJA: Kolejną rzeczą, którą sprawdziłem, był limit pamięci. Jedna strona zasugerowała, że ​​należy zwiększyć limit pamięci. Brak zmiany.

EDYCJA: Pytanie: Czy system Windows musi zostać ponownie uruchomiony, aby zmiany PHP zaczęły obowiązywać?

alexander7567
źródło
Która wersja PHP?
Kev
Cóż, kiedy zainstalowałem php 5.5 z tym instalatorem Microsoft, zainstalowałem również 5.3.
alexander7567

Odpowiedzi:

53

Istnieje spora szansa, że ​​brakuje Ci odpowiedniego środowiska uruchomieniowego VC ++ dla używanej wersji PHP.

Jeśli korzystasz z PHP 5.5.x, musisz upewnić się, że środowisko wykonawcze VC ++ 11 jest zainstalowane:

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

Pobierz i zainstaluj wersję x86 ( vcredist_x86.exe), PHP w systemie Windows nie jest jeszcze 64-bitowy.

Jeśli korzystasz z PHP 5.4.x, musisz zainstalować środowisko uruchomieniowe VC ++ 9:

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

Kev
źródło
1
Miałeś rację. Zrobiłem już x64, ponieważ był to komputer 64-bitowy. Zainstalowałem x86 i natychmiast (nie wymaga restartu) zaczął działać. Dzięki! Gnębiłem mózg godzinami!
alexander7567
Znakomity! Naprawiłem to również natychmiast dla mnie. +1
Czy Appleby
2
Dzięki! Instancja PHP 5.6 wymaga środowiska
uruchomieniowego
Dzięki ! Początkowo brakowało mi części o x86, ale po nieudanej porażce zobaczyłem, co przegapiłem i teraz wszystko działa dobrze.
Alexandre Danault,
5
Każdy, kto ma ten problem z PHP 5.6 , potrzebuje wersji x86 Visual C ++ Redistributable dla Visual Studio 2012 Update 4 (vcredist_x86.exe) , którą można uzyskać na następującej stronie: microsoft.com/en-us/download/details .aspx? id = 30679
derekmx271
6

Przyłapał mnie podobny komunikat i okazało się, że nie zainstalowałem roli serwera CGI (w IIS -> Tworzenie aplikacji).

Z Orbonii
źródło
Jak podobna jest wiadomość?
Deer Hunter
Zainstalowałem środowisko wykonawcze VC ++ 11, ale musiałem również zainstalować obsługę CGI, aby działało. W systemie Windows 8.1 i IIS 8.5. Znajdź poniżejTurn windows features on or off > Internet information services > application development features > CGI
jxmallett,
4

Miałem ten sam błąd dla PHP 7.0.3 na serwerze R2 z 2012 roku z IIS 8.5.

Rozwiązaniem jest instalacja: Visual C ++ Redistributable for Visual Studio 2015 32bits

Po zainstalowaniu wszystko działało poprawnie.

Tidoy007
źródło
1

Nadal występował błąd 500 po zainstalowaniu programu Visual C ++ Redistributable for Visual Studio 2015 32bits.

Uruchomiłem procmon z sysinternals firmy Microsoft i podczas żądania mojej strony php znaleziono

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

w3wp.exe to pula aplikacji działająca w IIS

Nadanie określonego użytkownika puli aplikacji READ / EXECUTE uprawnieniom do c: \ php naprawiono problem.

obrabować
źródło