W środowiskach WordPress zwykle nie ma powodu, aby z tego korzystać, ini_set
ponieważ właśnie to osiągają zdefiniowane stałe dostarczone przez WordPress Core. Sposób działania PHP polega na tym, że niektóre ustawienia można zastąpić w systemie CMS (WordPress), w poszczególnych skryptach, a nawet dla poszczególnych użytkowników lub katalogów (ku wielkiej frustracji hostów i agencji).
Aby wyłączyć wyświetlanie błędów na stronie w WordPress, jedynym ustawieniem, którego naprawdę potrzebujesz, jest:
define('WP_DEBUG', false);
... ponieważ kiedy WP_DEBUG
jest wyłączone, opcje podrzędne są wtedy nieaktywne:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Należy pamiętać, że myląca WP_DEBUG_LOG
opcja odnosi się tylko do tworzenia debug.log
w katalogu wp-content
i nie wpływa na inne ustawienia rejestrowania itp.
Ponownie, ustawienia w WordPress mogą zastąpić domyślne ustawienia PHP, więc ustawienia PHP nie mają tak dużego znaczenia, jak prawidłowe ustawienia wp-config.php
pliku, które ładują się przed innymi komponentami WP.
To powiedziawszy, dobrym pomysłem jest wdrożenie domyślnych ustawień, takich jak poniżej w produkcji:
error_reporting = E_ERROR | E_WARNING | E_PARSE
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/www/logs/error.log
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = Off
report_memleaks = On
xmlrpc_errors = 0
html_errors = Off
Aby uzyskać pełny przykład, zapoznaj się z naszym plikiem php.ini SlickStack zoptymalizowanym dla Nginx i PHP-FPM.
W jednym przypadku, po godzinach badań, zdaliśmy sobie sprawę, że wtyczka (lub motyw) zastępuje różne ustawienia obsługi błędów wcześniej ustawione w php.ini
i wp-config.php
. Jedynym sposobem, aby temu zapobiec, jest usunięcie wtyczki lub motywu WordPress, który próbuje „zhakować” ustawienia PHP lub nakazać im usunięcie, ponieważ jest to bardzo zła praktyka, aby rozszerzenia zastępowały opcje debugowania twojego CMS.
W SlickStack stworzyliśmy skrypt Bash, który „ zaznacza ” dowolne wiersze ini_set
i error_reporting
pliki PHP w katalogach /themes/
i /plugins/
, zaznaczając takie przypadki za pomocą wtyczki MU (skrypt PHP), która wyświetla listę takich „włamań” na pulpicie administracyjnym WP.