Co oznacza biały ekran śmierci

Zaczęty przez js, 11 Marzec 2022, 17:07

0 użytkowników i 1 Gość przegląda ten wątek.

js

Czym jest biały ekran śmierci

Biały ekran podczas otwarcia strony w SMF (lub w jakiejkolwiek innej aplikacji opartej na PHP) oznacza, że wystąpił nienaprawialny błąd, który spowodował zatrzymanie wykonywania skryptu przed przesłaniem jakiejkolwiek treści do przeglądarki.

Są dwa główne powody, przez które tak się stało. Pierwszym z nich jest błąd PHP w kodzie twojego forum (który możesz otrzymać, jeśli dokonujesz zmian w kodzie lub gdy instalujesz modyfikację). Drugi błąd jest taki, że PHP nie może użyć pamięci potrzebnej do wykonania wymaganego zadania.

Dlaczego widzę białą stronę, a nie sam błąd?

Twoja konfiguracja PHP może zapobiec wyświetleniu tego błędu. Na działającej i w pełni funkcjonalnej stronie internetowej twoi goście nie powinni przypuszczalnie zobaczyć błędów (jeśli wystąpią), ponieważ mogą one ujawnić ścieżki do plików lub inne wrażliwe informacje. Z tego powodu niektóre hosty specjalnie konfigurują PHP, żeby nie wyświetlały błędów.

Jak uzyskać więcej informacji

Jest kilka sposobów, aby uzyskać więcej informacji. Niektóre z nich są wymienione poniżej, ale bądź świadomy, że te sposoby mogą nie istnieć w twojej konfiguracji serwera.

Skontaktuj się ze wsparciem serwera

Przypuszczając, że nie posiadasz własnego serwera, skontaktowanie się z gospodarzem twojego serwera jest najłatwiejszym sposobem uzyskania informacji. Twój gospodarz powinien mieć dostęp do wszystkich twoich dzienników, więc powinien być w stanie dostarczyć ci szczegółowych informacji.

Sprawdź swój dziennik

Gdy wystąpi błąd PHP, jest on zarejestrowany w pliku na dysku twardym twojego serwera. W zależności od konfiguracji powinieneś mieć również ten plik w katalogu domowym (home). Użyj swojego klienta FTP i wyszukaj plik, który zwykle nazywa się ,,error_log", ,,error.log" lub podobnie. Jeśli nie znajdziesz takiego pliku, to znaczy, że twój serwer nie jest skonfigurowany do jego utworzenia. Skontaktuj się ze wsparciem serwera i zapytaj ich o włączenie tej opcji, ponieważ to jest bardzo pomocne narzędzie do debugowania.

Spróbuj przesłać więcej informacji

Można wskazać PHP, aby została przesłana informacja o błędzie bezpośrednio do twojej przeglądarki. Aby to zrobić, edytuj plik index.php SMF (przed edycją pliku najpierw wykonaj kopię zapasową tego pliku) za pomocą swojego ulubionego edytora tekstu i znajdź:

// Get everything started up...
define('SMF', 1);

Zamień na:

error_reporting(E_ALL);
ini_set('display_errors', 1);

// Get everything started up...
define('SMF', 1);

Po ustaleniu ukrytego problemu powinieneś cofnąć tę zmianę.

Jak rozwiązać problem

Rozwiązanie problemu zależy w szczególności, z jakiego powodu występuje problem. Najczęstsze przyczyny to:

Błędy kodu PHP

Powinieneś widzieć te błędy tylko podczas edytowania kodu forum lub podczas instalowania/odinstalowywania modyfikacji. Twój dziennik powinien wyświetlić coś takiego jak (to są tylko przykłady):

Parse error: syntax error, unexpected $end in /home/user/public_html/forum/index.php on line 175
Fatal error: Call to undefined function getInitialInformation() in /home/user/public_html/forum/index.php on line 175
(błąd, nazwa pliku, ścieżka pliku i numer wiersza mogą oczywiście się różnić).

Błędy pamięci PHP

Ten błąd występuje, podczas gdy wykonanie kodu próbuje przydzielić więcej pamięci, niż system jest skonfigurowany do przyznania. Twój dziennik powinien wyświetlić coś takiego jak:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 826064718 bytes) in /home/user/public_html/forum/index.php on line 175
(ilości pamięci, nazwa pliku, ścieżka pliku i numer wiersza mogą oczywiście się różnić).

Poproś o wsparcie

Poproś o wsparcie w odpowiednim dziale pomocy technicznej dla wersji SMF używanej na twoim forum. Nie zapomnij podać informacji z phpinfo.

Źródło: https://wiki.simplemachines.org/smf/What_the_white_screen_of_death_means



Co to jest plik phpinfo()

Plik phpinfo.php to jest plik, który ułatwi nam sprawdzenie informacji o twoim serwerze. Pomimo że nie zawiera informacji o wersji schematu bazy danych, ale zawiera informację o wersji PHP, Apache/IIS, GD i inne informacje. Zawiera również opis wielu ważnych ustawień, które mogą powodować problemy z instalacją.

Utworzenie pliku phpinfo.php jest proste i łatwe. Za pomocą prostego edytora tekstu (takiego jak Notepad++) utwórz nowy plik ,,phpinfo.php" zawierający ten kod:

<?php phpinfo(); ?>
Prześlij ten plik na swój serwer i dopisz phpinfo.php do adresu forum. Powinna wyświetlić się strona informująca o zainstalowanej wersji PHP na twoim serwerze i wiele innych szczegółowych informacji. Gdy zadasz zespołowi pytanie, podaj nam również link do tego pliku phpinfo.php

Jeśli wyświetlana jest pusta strona lub jakiś tajemniczy kod, taki jak <?php phpinfo(); ?>, twój serwer nie obsługuje PHP i nie możesz zainstalować Simple Machines Forum na swoim serwerze. Będziesz musiał albo zainstalować i skonfigurować PHP na swoim serwerze (jeśli jesteś właścicielem swojego serwera) albo będziesz musiał zmienić firmę hostingową (jeśli jesteś tylko klientem), aby móc uruchomić SMF.

Źródło: https://wiki.simplemachines.org/smf/What_is_a_phpinfo()_file