ОТЛАДКА WP не установлена, но я все еще получаю предупреждения


Если WP_DEBUG не установлен, как я понимаю, вы никогда не должны видеть предупреждений. Но на некоторых сайтах на некоторых серверах я все еще вижу несколько. Не все предупреждения, которые отображались бы, если бы был установлен параметр WP_DEBUG, но несколько избранных.

Я пытался изменить уровень ошибок в php.ini, но это, похоже, не влияет на то, появляются предупреждения или нет, но они появляются в разных количествах на разных серверах (т.Е. Нет предупреждений о разработке, одно предупреждение о постановке, и еще несколько предупреждений о производстве).

Author: Dave Konopka, 2011-06-10

5 answers

WP_DEBUG не влияет на вывод ошибок PHP. В дополнение к параметру error_reporting установите значение display_errors=0 в вашем файле php.ini. Он включен по умолчанию для разработки. Но вы захотите отключить его на производственных серверах.

 9
Author: Dave Konopka, 2011-06-11 01:50:13

Заменить

define('WP_DEBUG', false);

С помощью этого:

ini_set('log_errors','On');

ini_set('display_errors','Off');

ini_set('error_reporting', E_ALL );

define('WP_DEBUG', false);

define('WP_DEBUG_LOG', true);

define('WP_DEBUG_DISPLAY', false);
 25
Author: Ram, 2015-10-18 19:55:00

Также возможно, что для этой строки уже установлено значение false. В этом случае вы увидите следующий код:

define('WP_DEBUG', false);

В любом случае вам необходимо заменить эту строку следующим кодом:

ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);

Не забудьте сохранить внесенные изменения и загрузить wp-config.php файл возвращается на сервер.

 6
Author: Logic digger, 2018-04-01 10:15:07

Для сред WordPress обычно нет причин использовать ini_set, потому что именно этого уже достигают определенные константы, предоставляемые ядром WordPress. Способ работы 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.

 1
Author: Jesse Nickles, 2020-01-13 08:18:40

Попробуйте отключить/подавить все предупреждения/уведомления об ошибках в вашем wp-config.php (сверху). В любом случае: в ошибках нет ничего плохого. Они дают вам возможность исправить свой код.

 0
Author: kaiser, 2011-06-10 14:47:11