Strona główna / Wiedza / Blog / Jak włączyć szczegółowe komunikaty błędów w Drupal
Drupal

Jak włączyć szczegółowe komunikaty błędów w Drupal

Yulia DovhaYulia DovhaWeb Developer 04.04.2026 9 min czytania
drupal

Poprawne zarządzanie komunikatami błędów w Drupal jest kluczowe zarówno dla komfortu pracy administratora, jak i dla bezpieczeństwa całego serwisu. Gdy strona nagle zaczyna zwracać biały ekran, tajemniczy błąd 500 albo niekompletne treści, szczegółowe logi i komunikaty pozwalają szybko znaleźć przyczynę. Z drugiej strony, niekontrolowane ujawnianie informacji o środowisku produkcyjnym może ułatwić atak. Poniżej znajdziesz praktyczne wskazówki, jak świadomie włączyć szczegółowe komunikaty błędów w Drupal i robić to bezpiecznie.

Podstawy raportowania błędów w Drupal

Różnica między błędami PHP a komunikatami Drupal

Drupal korzysta z wbudowanego w PHP mechanizmu raportowania błędów, ale jednocześnie posiada własny system obsługi komunikatów. Aby skutecznie diagnozować problemy, trzeba rozumieć, że:

  • błędy na poziomie PHP (notice, warning, fatal error) są generowane przez sam silnik języka,
  • komunikaty systemowe Drupal (status, warning, error) są zarządzane przez moduł system oraz warstwę API,
  • logowanie zdarzeń może odbywać się do bazy danych, plików, sysloga lub zewnętrznych usług.

Przy włączaniu szczegółowych komunikatów warto zadbać, aby zarówno poziom raportowania PHP, jak i poziom logowania w Drupal były ze sobą spójne. Inaczej część problemów może pozostać ukryta lub przeciwnie: zostaniesz zalany nadmiarem informacji, z których trudno wyłuskać to, co naprawdę istotne.

Poziomy komunikatów w interfejsie Drupal

W panelu administracyjnym można skonfigurować, jak szczegółowe komunikaty błędów będą widoczne dla użytkowników. W zależności od wersji Drupal, opcje są dostępne w sekcji konfiguracji dotyczącej logowania i błędów, gdzie można ustawić m.in.:

  • wyświetlanie tylko ogólnego komunikatu o błędzie,
  • pokazywanie szczegółowego komunikatu jedynie dla administratorów,
  • wyświetlanie szczegółów błędu dla wszystkich użytkowników.

Te ustawienia mają wpływ wyłącznie na to, co zobaczysz w przeglądarce, nie na samo logowanie błędów. Nawet kiedy interfejs pokazuje jedynie ogólną informację, szczegółowe dane mogą wciąż trafiać do logów, o ile zdefiniujesz odpowiedni poziom raportowania w konfiguracji systemu.

Bezpieczeństwo a przejrzystość komunikatów

Włączanie pełnych komunikatów błędów na stronie publicznej wiąże się z ryzykiem. W treści wyjątków, ścieżkach plików czy stosach wywołań mogą pojawić się dane techniczne, które ułatwią atakującemu rekonesans. Dobrym kompromisem jest:

  • pełne debugowanie i szczegółowe błędy w środowisku developerskim,
  • ogólne komunikaty + rozbudowane logi na środowisku testowym,
  • minimalne komunikaty dla użytkownika, ale szczegółowe logowanie tylko do zaufanych kanałów na produkcji.

Takie podejście pozwala zachować wysoki poziom bezpieczeństwa, a jednocześnie nie utrudnia pracy programistom i administratorom przy diagnozowaniu awarii.

Konfiguracja szczegółowych błędów w Drupal 7

Ustawienia z poziomu interfejsu administracyjnego

W Drupal 7 szczegółowe komunikaty błędów można skonfigurować za pomocą panelu administracyjnego. Kluczowa sekcja to konfiguracja raportowania błędów PHP. Aby ją znaleźć, przejdź do ustawień dotyczących logowania i błędów. Najczęściej wybierasz jedną z opcji:

  • bez wyświetlania komunikatów: w praktyce tylko bardzo ogólny komunikat,
  • wyświetlanie tylko krytycznych błędów,
  • pokazywanie wszystkich komunikatów PHP, w tym notice i warning.

Na etapie tworzenia modułów lub motywów szczególnie pomocne jest ustawienie pozwalające zobaczyć wszystkie ostrzeżenia. Dzięki temu łatwo wychwycisz nieużywane zmienne, błędne indeksy tablic czy problemy z typami danych, zanim zaczną skutkować poważniejszymi awariami.

Edycja pliku settings.php

W niektórych sytuacjach dostęp do panelu administracyjnego jest niemożliwy: błąd 500, biały ekran śmierci albo zapomniane hasło administratora. Wtedy szczegółowe komunikaty można włączyć bezpośrednio w pliku settings.php. Ten plik znajduje się w katalogu sites/default (lub odpowiednim katalogu wieloserwisowym).

Możesz w nim wymusić konkretne ustawienia PHP, dodając linie odpowiedzialne za raportowanie błędów, na przykład aktywując funkcje wyświetlania błędów w samym PHP i ustawiając pożądany poziom raportowania. To rozwiązanie przydaje się zwłaszcza przy krytycznych problemach, kiedy nie działa jeszcze cała warstwa interfejsu administracyjnego.

Użycie modułów narzędziowych (Devel, Kint)

Dla Drupal 7 popularnym sposobem na uzyskanie szczegółowych informacji diagnostycznych jest użycie modułu Devel oraz wbudowanych w niego narzędzi. Moduł ten umożliwia między innymi:

  • wyświetlanie struktury zmiennych w kodzie,
  • profilowanie zapytań do bazy danych,
  • podgląd logów i szczegółowych komunikatów bezpośrednio na stronie.

Devel nie służy tylko do wyświetlania błędów, ale w praktyce wspiera kompletny proces debugowania. W połączeniu z biblioteką Kint, która pozwala czytelnie prezentować tablice i obiekty, uzyskujesz bardzo wygodne środowisko do analizowania przyczyn nietypowych zachowań serwisu.

Logowanie do bazy danych i watchdog

Drupal 7 korzysta z systemu watchdog do zapisywania logów w bazie danych. Domyślnie moduł odpowiedzialny za logowanie może kierować komunikaty do tabeli w bazie, skąd można je odczytać przez interfejs administracyjny. Warto:

  • sprawdzić, czy moduł logowania do bazy jest włączony,
  • ustawić odpowiedni poziom logowania, aby rejestrować nie tylko krytyczne błędy, ale również ostrzeżenia,
  • okresowo czyścić logi lub skonfigurować rotację, aby nie rozrastały się bez końca.

Skutecznie skonfigurowany system logowania sprawia, że nawet przy wyłączonym wyświetlaniu błędów w interfejsie zawsze możesz odtworzyć sekwencję zdarzeń prowadzącą do awarii, korzystając z historii zapisanej w tabelach systemowych.

Konfiguracja szczegółowych błędów w Drupal 8, 9 i 10

Tryb debugowania w services.yml

W Drupal 8 i nowszych kluczową rolę w obsłudze błędów odgrywa warstwa Symfony. Szczegółowe komunikaty można aktywować, modyfikując plik konfiguracyjny usług, zwykle nazywany services.yml lub jego lokalną wersję. Przez zmianę odpowiedniego parametru można włączyć tryb, w którym aplikacja ujawnia pełen stack trace, informacje o wyjątkach i dodatkowe dane diagnostyczne.

W praktyce oznacza to, że przy błędzie serwer nie zwróci jedynie ogólnego komunikatu, ale pokaże rozbudowaną stronę opisującą przyczynę. Bardzo ułatwia to pracę programistom, ale niesie poważne ryzyko, jeśli takie ustawienie trafiłoby na środowisko produkcyjne. Dlatego w nowych wersjach Drupal szczególnie istotne jest oddzielenie konfiguracji developerskiej od produkcyjnej.

Environment indicator i konfiguracja środowisk

Wielu administratorów utrzymuje osobne instancje Drupal: deweloperską, testową i produkcyjną. Dobrym nawykiem jest:

  • trwałe włączenie szczegółowych błędów w środowisku lokalnym,
  • kontrolowane włączanie ich na środowisku testowym tylko przy pracy nad konkretnym problemem,
  • utrzymywanie minimalnego poziomu komunikatów dla użytkownika na produkcji.

Aby nie mylić poszczególnych środowisk, używa się często modułów takich jak indicator, który wizualnie oznacza, czy pracujesz na instancji deweloperskiej, czy produkcyjnej. Dzięki temu znacznie zmniejszasz ryzyko pozostawienia szczegółowych komunikatów błędów na publicznej wersji serwisu.

Integracja z modułami logującymi (Syslog, Database Logging)

Drupal 8, 9 i 10 oferują elastyczny system logowania, pozwalający kierować komunikaty do wielu kanałów. Możliwe jest:

  • logowanie do bazy danych za pomocą standardowego modułu,
  • wykorzystanie systemowego syslog do integracji z narzędziami serwerowymi,
  • wysyłanie logów do zewnętrznych usług monitorujących.

Przy włączaniu szczegółowych błędów dobrze jest równocześnie zadbać o filtrowanie i poziomy logowania. Zbyt niski próg (na przykład rejestrowanie wszystkich notice) może doprowadzić do szybkiego zapchania logów i utrudnić analizę, gdy próbujesz wyłapać konkretny fatal error.

Drupal Console, Drush i komunikaty CLI

W nowszych wydaniach Drupal dużą rolę odgrywają narzędzia wiersza poleceń, takie jak Drush czy Drupal Console. Podczas uruchamiania komend z linii komend często pojawiają się bardziej szczegółowe komunikaty niż w przeglądarce, w tym:

  • pełne stack trace dla wyjątków,
  • szczegółowe błędy kompilacji kontenera usług,
  • informacje o brakujących uprawnieniach do plików i katalogów.

Administratorzy powinni pamiętać, że czasem łatwiej zdiagnozować błąd, wywołując odpowiednią komendę Drush, niż próbując wielokrotnie wchodzić na tę samą stronę w przeglądarce. W środowisku developerskim te narzędzia stanowią naturalne uzupełnienie konfiguracji szczegółowych komunikatów błędów.

Praktyczne scenariusze diagnozowania błędów

Biały ekran śmierci (WSOD)

Jednym z najczęstszych problemów w Drupal jest całkowicie pusta strona, znana jako biały ekran śmierci. Typowe przyczyny to krytyczne błędy PHP, zużycie limitu pamięci lub przerwanie wykonywania skryptu. W takim przypadku szczegółowe komunikaty błędów są często wyłączone, więc przeglądarka nie pokaże nic.

Rozsądna kolejność działań obejmuje:

  • włączenie raportowania błędów na poziomie PHP w pliku konfiguracyjnym,
  • sprawdzenie logów serwera (Apache, Nginx, PHP-FPM),
  • tymczasowe zwiększenie limitu pamięci, jeśli pojawia się informacja o przekroczeniu pamięci.

Gdy już uzyskasz choćby fragment komunikatu o błędzie, możesz zawęzić obszar poszukiwań, np. do konkretnego modułu, motywu lub funkcji niestandardowej. Bez włączenia szczegółowych błędów ten etap często jest niemożliwy.

Błędy po aktualizacji modułów lub rdzenia

Po aktualizacji rdzenia Drupal lub jednego z kluczowych modułów mogą pojawić się błędy związane z niekompatybilnymi zmianami API. Szczegółowe komunikaty błędów ujawnią wtedy między innymi:

  • informacje o brakujących funkcjach,
  • niezgodności typów w wywołaniach metod,
  • problemy z aktualizacją schematu bazy danych.

Przydatne jest przełączenie serwisu w tryb konserwacji, włączenie szczegółowych komunikatów tylko dla administratorów, a następnie sprawdzenie logów systemowych i logów serwera. Dzięki temu użytkownicy nie zobaczą nieprzyjemnych informacji o błędach, a ty zyskasz wszystkie potrzebne dane do korekty kodu lub konfiguracji.

Problemy z uprawnieniami do plików i katalogów

Drupal intensywnie korzysta z systemu plików: pamięci podręcznej, tymczasowych katalogów oraz katalogów publicznych i prywatnych. Błędne uprawnienia do katalogów często skutkują pozornie niezrozumiałymi awariami. Po włączeniu szczegółowych komunikatów zwykle pojawiają się informacje o:

  • braku możliwości zapisu do katalogu tymczasowego,
  • problemach z tworzeniem katalogów cache,
  • błędach przy generowaniu stylów obrazów lub kompilacji CSS i JS.

Dzięki wyraźnym komunikatom widzisz dokładną ścieżkę, której dotyczy problem, i możesz szybko dostosować uprawnienia systemowe. Bez takiej informacji często pozostaje jedynie metoda prób i błędów, co znacząco wydłuża czas naprawy serwisu.

Błędy wydajności i limity czasu

Nie wszystkie błędy dotyczą stricte awarii kodu. W rozbudowanych serwisach często spotyka się problemy z wydajnością i przekraczaniem limitów czasu wykonywania. Włączenie szczegółowych błędów i rozbudowanego logowania pozwala zidentyfikować:

  • zbyt wolne zapytania do bazy danych,
  • moduły generujące nadmierne obciążenie,
  • zadania cron trwające dłużej niż dopuszcza konfiguracja serwera.

Na podstawie tych danych można zaplanować optymalizację: włączenie lub tuning cache, przebudowę indeksów, zmianę konfiguracji serwera czy refaktoryzację modułów niestandardowych. Szczegółowe informacje o czasie wykonania i liczbie zapytań są tutaj równie ważne jak same komunikaty o błędach.

Masz podobny problem na swojej stronie?

Podaj adres strony i e-mail. Sprawdzimy ją bezpłatnie i odpiszemy z konkretnymi wnioskami.

Administratorem danych jest icomSEO Sp. z o.o. z siedzibą w Lublinie. Dane przetwarzamy, aby odpowiedzieć na zgłoszenie. Więcej w Polityce prywatności.

Yulia Dovha
O autorze

Yulia Dovha

Web Developer · 688 artykułów

Yulia Dovha tworzy treści dla bloga icomSEO: praktyczne poradniki o SEO, reklamie i marketingu internetowym.

Podobne artykuły

Partnerzy i organizacje

Zadzwoń