Używamy PHP 5.2.5 na serwerze IIS 7 i mamy problemy z wyświetlaniem błędów PHP ... W tej chwili, kiedy mamy błąd PHP, serwer odsyła błąd 500 z komunikatem „Strona nie może być wyświetla się, ponieważ wystąpił wewnętrzny błąd serwera. ”
Może to być dobre ustawienie dla stron produkcyjnych, ale raczej irytujące na serwerze programistycznym ... ;-)
Próbowałem skonfigurować php.ini
wyświetlanie błędów na ekranie, a także rejestrować je w określonym folderze, ale wygląda na to, że serwer przechwytuje wszystkie błędy wcześniej i zapobiega i obsługuje przez PHP ...
Czy ktoś wie, co musimy zrobić, aby IIS wyświetlał błędy PHP na ekranie? Wszelkie linki, porady lub samouczki na ten temat będą mile widziane!
log_errors=1
,error_reporting=-1
,log_errors_max_len=0
.ini_set("display_errors", "on");
dodaj te linie w pliku php.Odpowiedzi:
Wystarczy podwójnie sprawdzić, czy masz ustawione logowanie
error_reporting = E_ALL
, adisplay_errors = On
na swoimphp.ini
? Zwykle wystarcza to do wyświetlenia tych błędów w IIS 7.Następnie spójrz na swoje ustawienia IIS, ponieważ może to być ustawienie, aby wyświetlać tylko komunikaty o błędach lokalnie. W edytorze konfiguracji IIS 7 jest to w obszarze system.webServer-> httpErrors. Będziesz musiał zmienić errorMode na Szczegółowe z Szczegółowych Lokalnych. Oczywiście oznacza to teraz, że każdy przeglądający Twoją stronę będzie mógł zobaczyć błąd.
Alternatywnie, jeśli chcesz, aby były lokalne, możesz użyć Pulpitu zdalnego, aby zalogować się na serwerze i uruchomić aplikację stamtąd, jeśli możesz.
źródło
system.webServer
moją krwią i dodaj notatkę: „Tak, jest kombinacja”.Chciałem tylko dodać, że „istniejąca odpowiedź” powinna być ustawiona na „PassThrough”. Nie otrzymałem żadnych prawdziwych komunikatów o błędach bez tego dodatkowego ustawienia.
źródło
Możesz to łatwo zrobić za pomocą GUI Menedżera usług IIS. Wybierz swoją witrynę i kliknij dwukrotnie Strony błędów. Następnie naciśnij „Edytuj ustawienia funkcji ...” i wybierz opcję „błędy szczegółowe” zamiast domyślnych „błędów szczegółowych w przypadku żądań lokalnych i niestandardowych stron błędów w przypadku żądań zdalnych”. Voilà, takie proste!
źródło
Musiałem przejść do ustawień na serwerze sieciowym do konfiguracji php i tam jest ustawienie raportowania błędów i domyślnie jest ustawione na produkcję. Musiałem zmienić go na rozwój nawet po zmianie php.ini i sugestii tutaj. Używam iis 7.5 na 2008 R2.
źródło