Для середовищ WordPress зазвичай немає причин використовувати, ini_setоскільки саме цього вже досягаються визначені константи, надані WordPress Core. Те, як працює PHP, полягає в тому, що певні налаштування можуть бути замінені у вашій CMS (WordPress), в окремих сценаріях і навіть на основі кожного користувача або каталогу (що дуже шкодить веб-хостам і агенціям).
Щоб відключити відображення помилок на сторінці в WordPress, єдине вам потрібне:
define('WP_DEBUG', false);
... тому що, коли WP_DEBUGвимкнено, підпараметри тоді неактивні:
define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);
Майте на увазі, що заплутаний WP_DEBUG_LOGваріант стосується лише створення debug.logв каталозі wp-contentта не впливає на інші налаштування журналу тощо.
Знову ж таки, параметри в WordPress можуть змінити налаштування PHP за замовчуванням, тому ваші налаштування PHP мають не стільки значення, скільки правильні настройки у вашому wp-config.phpфайлі, які завантажуються перед іншими компонентами WP.
З огляду на це, корисно реалізувати налаштування за замовчуванням, як показано нижче, у виробництві:
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
Для повного прикладу див. Наш файл php.ini SlickStack, оптимізований для Nginx та PHP-FPM.
В одному випадку, після кількох годин дослідження, ми зрозуміли, що плагін (або тема) перекриває різні налаштування обробки помилок, попередньо встановлені в php.iniта wp-config.php. Єдиний спосіб запобігти цьому - це видалити плагін WordPress або тему, яка намагається "зламати" ваші налаштування PHP, або запропонувати їм видалити, оскільки це дуже погана практика для розширень, які перекривають параметри налагодження вашої CMS.
У SlickStack ми створили сценарій Bash, який "позначає" будь ini_set-які error_reportingрядки та файли PHP у каталогах /themes/та /plugins/каталогах, виділяючи такі випадки, використовуючи плагін MU (скрипт PHP), який відображає список таких "хаків" на панелі керування WP адміністратора.