Для середовищ 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 адміністратора.