Jaki jest skuteczny sposób rozwiązania problemu „białego ekranu śmierci”


18

Całkiem kilka razy byłem w sytuacji, gdy front strony Joomla to pusty ekran bez zawartości, zwany czasem „białym ekranem śmierci”.

Stało się tak po przeniesieniu strony internetowej, a także niespodziewanie na wcześniej działającej stronie internetowej.

Zakładając, że mogą istnieć różne przyczyny, jaki jest skuteczny sposób rozwiązania tego problemu?

Odpowiedzi:


14
  1. Zmień raportowanie błędów na maksimum

    • Zaloguj się do obszaru administracyjnego
    • Przejdź do Konfiguracja globalna -> serwer

    Najpierw musisz ustawić raportowanie błędów na maksimum

  2. Edytuj pliki na FTP

    • Zaloguj się do plików witryny Joomla za pośrednictwem FTP.

    • Znajdź plik index.php znajdujący się w katalogu głównym witryny.

    • Otwórz plik index.php i dodaj ten kod bezpośrednio po pierwszej linii pliku:

      ini_set('display_errors', TRUE); error_reporting(E_ALL); 
      
  3. Edytuj plik PHP.ini

    W pliku PHP.ini musisz zmienić te dwa ustawienia:

    • Ustaw Błąd wyświetlania na Wł .: display_errors = On

    • Ustaw raportowanie błędów: error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

  4. Sprawdź dziennik serwera

    Wreszcie pojawi się dziennik błędów z komunikatem o błędzie, podającym ścieżkę i przyczynę błędu

Odniesienie: http://www.ostraining.com/blog/joomla/white-screen-of-death/


2
Oprócz powyższego polecam zainstalowanie i włączenie konsoli Firebug w przeglądarce. Po zakończeniu ponownie odwiedź Biały ekran śmierci. Będziesz zaskoczony tym, co czasem znajdziesz.
TryHarder

1
Inna rzecz, zwykle uważam, że Biały Ekran Śmierci ma coś wspólnego z plikiem .htaccess.
TryHarder

1
W rzadkich przypadkach może to być spowodowane tym, że ładowany plik używa defined('FOO') or die();linii, ale FOOnie jest zdefiniowany.
Andrew Eddie

10

Te inne odpowiedzi prawdopodobnie doprowadzą cię do odpowiedzi, jednak jedną z rzeczy, które zauważyłem jako niewielki problem, są niektóre wtyczki, które same konfigurują raportowanie błędów i które mogą zastąpić raportowanie błędów Joomla, więc innym sposobem na to jest wyłączenie rozszerzeń pojedynczo czas do załadowania strony, przy czym wtyczki są głównym sprawcą.

Sprawdź ręcznie inne strony, czy się ładuje? Jeśli tak, to moduł lub komponent jest ładowany tylko na pierwszej stronie, co pomaga go odizolować. Dobrym pomysłem jest również aktualizacja rozszerzeń, jeśli działało, zanim środowisko mogło być PHP 5.2, a po przejściu na 5.3 lub 5.4 wystąpił poważny błąd wynikający z różnic.

Zazwyczaj aktualizacja rozszerzenia może to naprawić, o ile jest ona aktywnie utrzymywana. Chociaż w niektórych przypadkach może to być twój szablon.


1
Robię to również w odwrotny sposób i wyłączam wszystkie rozszerzenia, a następnie włączam je jeden po drugim, aż witryna się zepsuje. Ten sam pomysł.
David Fritsch

1
Czasami wyłączenie ich wszystkich naraz może samo z siebie przerwać. Nie zawsze, ale zdarzało się to raz, więc nasze rozwiązanie było po kolei.
Jordan Ramstad

6

W takich przypadkach wystarczy włączyć raportowanie błędów Joomla do maksimum, jak pokazano poniżej. wprowadź opis zdjęcia tutaj Gdy raportowanie błędów jest aktywne, spróbuj ponownie załadować stronę. Wyświetli teraz kilka zdań o błędach. Właśnie znalazłeś pierwszą informację, którą należy debugować, aby rozwiązać problem wprowadź opis zdjęcia tutaj

Więcej podstawowych wskazówek dotyczących debugowania można znaleźć w tym blogu: http://www.readybytes.net/blog/item/a-beginners-guide-to-start-debugging-joomla.html


2

Wygląda na to, że nikt nie wspomniał o wyłączeniu buforowania danych wyjściowych - wspomnę o tym tutaj ...

Buforowanie danych wyjściowych jest bardzo nieprzyjemne przy debugowaniu, a nawet jeśli ustawisz raportowanie błędów na maksimum i dodasz php.iniwpisy, nadal nie będzie działać (nadal nie zobaczysz błędów). Można to wyłączyć, dodając output_buffering = offdo .htaccesspliku, jak wspomniano tutaj (pamiętaj, że może to nie działać we wszystkich środowiskach).

Ponadto innym problemem powodującym pustą stronę jest to, że sam host mógł wyłączyć raportowanie błędów na swoim końcu - w takim przypadku należy skontaktować się z hostem, ponieważ wiele hostów nie pozwala na zastąpienie własnych ustawień.


1

Jeśli masz włączone adresy URL SEF i używasz pliku .htaccess Joomla !, upewnij się, że mod_rewrite jest włączony na serwerze.

W wielu przypadkach winowajcą jest plik .htaccess, więc zakładając, że mod_rewrite jest włączony, zaleciłbym wykonanie kopii zapasowej pliku .htaccess, a następnie usunięcie oryginału (lub zmianę jego nazwy), aby sprawdzić, czy to robi różnicę.

Polecam również zainstalowanie i uruchomienie konsoli Firebug w przeglądarce. Często ujawnia wskazówki, których można użyć, aby wyśledzić problem (dotyczy to wielu różnych problemów).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.