Usługi IIS nie wyświetlają szczegółowych błędów PHP - zamiast tego wyświetla błąd serwera 500

9

Jestem przyzwyczajony do obsługi stron z Apache, ale teraz jestem zmuszony do korzystania z serwera IIS.

Wiele moich stron PHP zwraca błąd 500 i nie mogę debugować, ponieważ IIS pomija komunikaty o błędach. Próbowałem ini_set('display_errors',1);w kodzie, ale bezskutecznie.

Błędy są wyświetlane na niektórych stronach, ale nie na tej, którą chcę debugować, więc nie sądzę, że jest to globalne ustawienie PHP, ale raczej coś wspólnego z ustawieniami witryny dla tej witryny.

Nie mogę znaleźć jednoznacznej odpowiedzi na pytanie, jak włączyć wyświetlanie błędów PHP.

Znalazłem ten link, ale nie jestem pewien, gdzie znaleźć „ system.webServer-> httpErrors ”.

Jak mogę włączyć wyświetlanie błędów w PHP w IIS?

Andy
źródło

Odpowiedzi:

6

Co powiesz na ich zalogowanie?

Edytuj plik php.ini i ustaw

error_reporting = E_ALL & ~E_NOTICE
log_errors = On

I albo

error_log = syslog aby zalogować się do dziennika zdarzeń systemu Windows lub

error_log = location/of/logfile zalogować się do pliku.

adapttr
źródło
Mam error_reporting, log_errorsi error_logwszystko skonfigurowane w ten sposób, ale to nadal nie zalogowaniu błędy na stronie Joomla. Ta strona została skopiowana z serwera Apache. Zaimportowałem .htaccessreguły do ​​IIS 7.5; ale niestety to wciąż zawodzi. Czy przypadkiem masz pojęcie, na co jeszcze powinienem się zwrócić?
Mike Perrenoud
5

Zakładając, że masz wszystkie właściwe ustawienia w swoim pliku php.ini

  1. Wybierz swoją stronę w Menedżerze IIS
  2. Po prawej stronie kliknij dwukrotnie ikonę Strony błędów
  3. Po prawej stronie w „Akcjach” kliknij link „Edytuj ustawienia funkcji”
  4. W wyświetlonym oknie podręcznym wybierz przycisk opcji „Błędy szczegółowe”
  5. Odśwież stronę PHP, aby zobaczyć szczegółowe błędy

Dzięki ostatniemu komentarzowi na tej stronie

AnotherLongUsername
źródło
0

Dowiedziałem się, że dobrym pomysłem jest uzyskanie dostępu do strony hostowanej w IIS za pomocą InternetExplorer w celu przetestowania.

W moim przypadku php-error-logs były czyste - nie dostały od tego żadnych wskazówek.

Podczas połączenia z firefox / chrome otrzymałem zwykły, nieekspresyjny komunikat „500 - wewnętrzny błąd serwera”: wprowadź opis zdjęcia tutaj

... ale bardziej użyteczny komunikat o błędzie („Błąd HTTP 500.0 - Błąd wewnętrzny serwera C: \ PHP \ php-cgi.exe - Nieoczekiwanie zakończono proces FastCGI”) podczas korzystania z InternetExplorer: wprowadź opis zdjęcia tutaj

Może spróbuj także połączyć się z http: // localhost na samym serwerze.

eli
źródło