Odpowiedzi:
Ten błąd pochodzi z nieprzechwyconego wyjątku PHP . Drupal wyłapuje wyjątki, więc użytkownik nie wyświetla brzydkiego komunikatu o błędzie PHP. Informacje o wyjątku można znaleźć w linku „Ostatnie wiadomości dziennika” w raportach (lub wypróbuj tę ścieżkę: / admin / raporty / dblog). Upewnij się, że moduł „Rejestrowanie bazy danych” jest włączony, ponieważ moduł ten udostępnia ten raport.
Zobaczysz wszystkie wewnętrzne wiadomości, które zostały wygenerowane. Filtruj według typu „PHP” i istotności „błąd”, a prawdopodobnie znajdziesz komunikat o nieprzechwyconym wyjątku. To powoduje twój problem. Teraz masz więcej informacji, więc możesz je naprawić.
/admin/reports/dblog
. Chyba że oczywiście nie możesz się zalogować, ponieważ ten głupi błąd zablokował całą witrynę Drupala!
Jeśli używasz Drush, po prostu zrób drush vset error_level 1
.
W przeciwnym razie przejdź do „ /admin/config/development/logging
” i zmień ustawienie na „Błędy i ostrzeżenia”
Zamiast drush
vset
/ vget
/ vdel
możesz użyć cset
/ cget
/ cdel
dla wartości konfiguracji i sset
/ sget
/ sdel
dla wartości stanu.
Edytuj ustawienia.php i dodaj tam linię (szczególnie na swojej stronie deweloperów, możesz to po prostu zachować)
$conf['error_level'] = 1;
drush wymaga możliwości ładowania bazy danych.
ŁATWY SPOSÓB dla Drupala 8 ,
jeśli nie możesz się już zalogować, aby uzyskać dostęp do ostatnich komunikatów w dzienniku, jak opisano w zaakceptowanej odpowiedzi.
Otwórz plik /sites/default/settings.php
za pomocą edytora lub klienta ftp i dodaj ten wiersz:
$config['system.logging']['error_level'] = 'verbose';
Po ponownym załadowaniu strony zobaczysz pełny komunikat o błędzie zamiast ogólnego „Witryna napotkała nieoczekiwany błąd. Spróbuj ponownie później."
Ten błąd pochodzi _drupal_log_error()
.
Jako szybką poprawkę dla programistów możesz zaktualizować tę funkcję, aby wyświetlać bardziej szczegółowe komunikaty o błędach, ale upewnij się, że zmienisz ją z powrotem przed uruchomieniem witryny :)
Sprawdź blog. Jest to najlepsze miejsce do znalezienia błędów na stronie internetowej Drupal. Sprawdź także konsolę JS, aby wykryć dodatkowe błędy w przeglądarce.
Sprawdź w watchdog
tabeli w MySQL. Możesz pobrać obiekt Blob ( variables
kolumnę) i otworzyć go za pomocą Notatnika. Pokaże zserializowany obiekt z twoim błędem.
Aby błędy były widoczne w witrynie Drupal, znajdź plik index.php w głównym katalogu swojej witryny. Otwórz plik index.php i dodaj ten kod bezpośrednio przed pierwszą linią pliku:
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
Możesz także spróbować rozwiązać problemy Drupal z dziennikami błędów, jak opisano tutaj.
To jest stary wątek, ale ponieważ ostatnio napotkałem ten sam problem, udostępniając swoje dane. Nie byłem w stanie uzyskać dostępu do żadnej ze ścieżek Drupala, ponieważ zawsze otrzymywałem ten błąd bez względu na wszystko. To zaczęło się dziać po tym, jak zaktualizowałem widok, więc wiedziałem, co trzeba zrobić, ale nie byłem w stanie otworzyć widoku. W ten sposób przejrzałem dzienniki serwera Apache. Oprócz powyższego rozwiązania, takiego jak przeglądanie drushów i blogów, pomocne może być przejrzenie dzienników serwera Apache, szczególnie gdy nie można uzyskać dostępu do żadnej ze ścieżek aplikacji. Zazwyczaj są one obecne w pliku \ logs \ error.log i zawierają szczegółowe informacje na temat nieobsługiwanego wyjątku oraz miejsca jego wygenerowania itp. Jako szybką poprawkę możesz skomentować kod zgłaszający wyjątek i dokonać aktualizacji aplikacji. W moim przypadku skomentowałem post kod, który udało mi się dostać do widoku i dokonać niezbędnych aktualizacji. Mam nadzieję, że pomoże to komuś w podobnych sytuacjach