Wpis gościnny
Podczas prowadzenia strony opartej o WordPress z dużym prawdopodobieństwem mogłeś spotkać się z różnymi błędami PHP. Najczęściej pojawią się one podczas aktualizacji systemu, wtyczek oraz motywu, gdy dochodzi do konfliktu różnych wersji rozszerzeń czy templatki z WordPressem. Błąd PHP może wystąpić także podczas ręcznych modyfikacji plików, zmian ich zawartości przy włamaniach, niewystarczającej ilości pamięci operacyjne, itd.
Na stronach poświęconych WordPress można znaleźć listę zawierającą co najmniej 40 popularnych błędów PHP. Przy czym nie koniecznie te wszystkie błędy powodują pojawienie się białego ekranu „śmierci” z komunikatem o awarii (np. rys. 1). W tym przypadku musisz wprowadzić zmiany w kodzie strony zgodnie z rekomendacjami systemu lub zmienić konfigurację samego silnika PHP np. podnieść nieco pamięć operacyjną przeznaczoną dla procesu PHP.
Jeśli informacja w komunikacje nie pozwala szybko znaleźć przyczyny awarii – przywróć stronę z ostatniej kopii zapasowej i spróbuj na spokojnie namierzyć przyczynę problemu. Mam nadzieje, że robisz kopię zapasową regularnie przed każdą poważną aktualizacją systemu, wtyczek lub motywu. Przy większych zmianach warto także najpierw wprowadzić modyfikacje na niezależnej kopii i w ten sposób przetestować czy wszystko gra. Jeśli jest OK można wprowadzić zmiany na wersji produkcyjnej strony.
Jeśli problem nie jest krytyczny (Notice lub Warning), to w zależności od lokalnej konfiguracji PHP administrator, ale także inni użytkownicy witryny mogą być poinformowani o nim za pomocą komunikatu, który pojawi się nad nagłówkiem witryny. I chociaż takie rozwiązanie ma na celu pomóc Ci szybko wychwycić problem i go naprawić, nie jest ono zbyt dobry z punktu widzenia innych użytkowników Twojej strony. Taki komunikat może znacznie zmniejszyć zaufanie do Ciebie zwłaszcza, gdy chodzi o e-sklep internetowy lub stronę o charakterze biznesowym.
Jeśli klient wchodzi na stronę z produktami i widzi błąd, to zapewne zastanowi czy warto tu coś zamawiać. Ty byś zamówił? Dlatego najlepiej wyłączyć wyświetlenie powiadomień o błędach PHP. Wtedy odwiedzający nie będą widzieć żadnych niepokojących ich komunikatów. Natomiast Ty musisz mieć świadomość, że sam również nie będziesz ich widzieć, dlatego warto co pewien czas przejrzeć logi błędów na serwerze.
Niektóre powiadomienia mogą pojawiać się w panelu administracyjnym WordPress (rys. 2), ale wcale tak być nie musi.
Aby wyłączyć wyświetlenie powiadomień o błędach PHP na stronie można zmodyfikować plik wp-config.php systemu. Znajdziesz go w folderze głównym WordPress’a. Dostać się do tego pliku można za pomocą managera plików w panelu konta hostingowego lub poprzez klasycznego klienta FTP. W naszym przypadku skorzystaliśmy się z oprogramowania dostępnego na hostingu (rys. 3)
Wyedytuj zaznaczony plik konfiguracyjny i odszukaj linijkę z kodem define(‘WP_DEBUG’, true) i zmień wartość „true” na „false”. Prawdopodobnie jednak WP_DEBUG ma już wartość „false”, więc tylko upewnij się czy faktycznie tak jest. To jednak nie gwarantuje ukrycia powiadomień o błędach. Dlatego aby zablokować ich pojawienie się na stronie, warto dodać jeszcze kilka linijek kodu:
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG_DISPLAY', false);
Po zapisywaniu wszystkich zmian możesz zamykać plik. Powiadomienia o błędach PHP nie będą widoczne dla użytkowników.
Innym sposobem znacznie szybszym i nie ingerującym w plik konfiguracyjny WP jest po prostu wprowadzenie zmiany w ustawieniach PHP na serwerze. W przypadku cPanelu wystarczy, że przejdziesz do sekcji edytora konfiguracji PHP:
Następnie wybierz swoją domenę i wyłącz wyświetlanie błędów PHP:
Podsumowanie
Powyższe rozwiązanie pozwala ukryć przed odwiedzającymi komunikaty o błędach PHP, które pojawiają się nad nagłówkiem strony. Jednak ukrycie tych powiadomień nie jest rozwiązaniem problemu. Dlatego od czasu od czasu warto albo ponownie włączyć wyświetlanie błędów, albo jeszcze lepiej zerkać na plik z logami błędów, które znajdziesz na swoim koncie hostingowym.
P.S. Mam nadzieję, że podane rozwiązanie będzie użyteczne. Jeśli masz jakieś pytania lub uwagi, proszę pisać.