Biała strona (WSOD, White Screen of Death)

Nasz serwis działał zupełnie poprawnie aż tu nagle - zamiast treści pojawia się biała strona. Brak źródła (podgląd źródła również pokazuje pustkę), brak komunikatów błędu - nic.
Komunikat błędu: 
zwykle w logach serwera odnajdziemy komunikaty błędów PHP, bądź błędu 500 protokołu HTTP.
Możliwe przyczyny: 

1) wyłączone raportowanie błędów w PHP (ustawienie jak najbardziej słuszne na serwerze produkcyjnym),
2) błędy w modułach lub skórce,
3) błędnie ustawiona obsługa PHP na koncie – na przykład włączone domyślnie PHP4 zamiast PHP5; czasem też problem z modułem nie dostosowanym do PHP 5.3,
4) niewłaściwe kodowanie znaków w pliku, który modyfikowaliśmy – być może dodaliśmy arkusz CSS albo szablon z błędnie zakodowanymi znakami, warto to sprawdzić usuwając na chwilę nasze pliki z serwera,
5) kod PHP wstawiony w któryś z bloków, segmentów, a może nawet jedną ze starych wersji segmentów,

Rozwiązanie: 

Tak naprawdę nasze pierwsze zadanie sprowadza się do poznania jak brzmi komunikat błędu. Dopiero potem możemy szukać rozwiązania.
Mamy kilka sposobów aby dowiedzieć się co powoduje „białą stronę śmierci”.
Na serwerze testowym możemy pozwolić sobie na wyświetlanie błędów w przeglądarce. Ustawimy to ustawiając parametr w C:xampplitephpphp.ini
display_errors = On
Jeśli pracujemy ze stroną umieszczoną na koncie www możemy poprosić administratora o dostęp do dziennika błędów PHP dla naszej witryny, lub spytać go o możliwość logowania błędów do pliku.
Na witrynach produkcyjnych nie zaleca się ustawiania wyświetlania błędów w przeglądarce, ponieważ prowadzi do pokazania informacji, które nie powinny być ujawniane (nazwa bazy danych, nazwy zmiennych, funkcji).
Część z usługodawców pozwala na umieszczanie w katalogu z witryną własnego pliku php.ini, w którym możemy zmienić część konfiguracji. Jeśli jest taka możliwość, ustawimy logowanie do pliku poprzez następujące parametry:
display_errors = Off
log_errors = On
error_log = "php_error.log"
parametry te umieszczamy w pliku php.ini i po około godzinie sprawdzamy czy nasza konfiguracja faktycznie działa.

Kiedy już wiemy jaki jest komunikat błędu a mimo to nic on nam nie mówi, powinniśmy szukać pomocy przez wyszukiwarkę (jest duża szansa, że ktoś już miał ten problem), oraz na forum wsparcia.
Podobnie jak z błędem 500, możemy próbować wykluczyć hipotezę, że problemy sprawia któryś z modułów - aby wykluczyć lub potwierdzić tę przyczynę usuńmy na moment wszystkie dodatkowe skórki i moduły i sprawdźmy czy to pomogło. Jeśli tak – problem leży w którymś z katalogów, które usunęliśmy.

0
Twoja ocena: None