Intereting Posts
Сделать текущую / активную страницу номер ссылки (WP_LINK_PAGES) Как добавить вкладку справки ко всем страницам администрирования, включая плагины Программное добавление пользовательских фильтров для публикации списка Почему gdsr_sort = thumbs (плагин для начинающего рейтинга GD) работает только с query_posts, а не с WP_Query? Получить комментарии: Прямая ссылка на конкретный комментарий + пост Перенаправление после пустой регистрационной формы Как добавить / изменить (woocommerce) значок вкладки продукта Функция пользовательских архивов Как сразу применить значения в customizer js api Создание метабокса для загрузки нескольких изображений, игнорирование выделенного изображения Network Admin «У вас недостаточно прав для доступа к этой странице». Пользовательская форма не отображается в правильном месте на странице Ошибка разбивки на страницы администратора (у вас недостаточно прав) Географический поиск с таксономической структурой Как изменить чувствительную позицию боковой панели и появление в дочерней теме?

Как узнать, какой плагин превышает пределы памяти?

Сегодня у меня была проблема, когда мои сайты перестали работать. Вызов ссылки просто показал криптовальное сообщение Database connection error на всех моих сайтах на одном сервере. Ошибка исчезла при перезагрузке.

Пытаясь добраться до корня проблемы, я изучал syslog (я использую Debian 7) и нашел следующие записи:

 Jun 15 05:46:03 myserver suhosin[8368]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'myipx.yza', file '/var/www/virtual/mylocation/htdocs/wp-content/plugins/wordfence/lib/wfUtils.php', line 502) Jun 15 05:46:21 myserver suhosin[8372]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'myipx.yza', file '/var/www/virtual/mylocation/htdocs/wp-content/plugins/wordfence/lib/wfUtils.php', line 502) Jun 15 05:46:38 myserver suhosin[8368]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'myipx.yza', file '/var/www/virtual/mylocation/htdocs/wp-content/plugins/wordfence/lib/wfUtils.php', line 502) Jun 15 05:46:54 myserver suhosin[8376]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'myipx.yza', file '/var/www/virtual/mylocation/htdocs/wp-content/plugins/wordfence/lib/wfUtils.php', line 502) Jun 15 05:55:01 myserver /USR/SBIN/CRON[8508]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1) Jun 15 05:56:59 myserver suhosin[8514]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'myipx.yza', file '/var/www/virtual/joel.co.in/kgimoa.com/htdocs/wp-content/plugins/wordfence/lib/wfUtils.php', line 502) Jun 15 05:57:18 myserver suhosin[8516]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'myipx.yza', file '/var/www/virtual/joel.co.in/kgimoa.com/htdocs/wp-content/plugins/wordfence/lib/wfUtils.php', line 502) Jun 15 05:57:33 myserver suhosin[8514]: ALERT - script tried to increase memory_limit to 268435456 bytes which is above the allowed value (attacker 'myipx.yza', file '/var/www/virtual/joel.co.in/kgimoa.com/htdocs/wp-content/plugins/wordfence/lib/wfUtils.php', line 502) 

Ошибка повторяется.

Посмотрев код, в строке 502:

  public static function iniSet($key, $val){ if(self::funcEnabled('ini_set')){ @ini_set($key, $val); } } 

Это потому, что один из моих плагинов / тем использует избыточное количество оперативной памяти? Как я могу выделить и определить, какой из них? Помимо отключения каждого плагина по очереди и ожидания появления ошибки в syslog, существует ли более быстрый и направленный метод?

Ошибка не говорит о том, что плагин использует много оперативной памяти. В нем говорится, что плагин попытался поднять memory_limit до 256M. Это две разные вещи.

Плагин или даже основной код, пытающийся настроить ограничение памяти очень высоко, является довольно нормальным, если он думает, что он может делать что-то, что будет использовать много оперативной памяти. WordPress делает это при обработке изображений, например, потому что для больших изображений требуется много памяти для работы, временно.

В этом случае кажется, что плагин Wordfence имеет в нем строку, которая вызывает эту функцию iniSet, чтобы попытаться поднять memory_limit. Вот и все. Не говорит, что он фактически использовал любой из них, и установка более высокого предела не особенно необычна.

Само сообщение происходит от Suhosin – части «упрощенного PHP-проекта», который дает вам эти сообщения журнала ошибок. Ни о чем не беспокоиться, так как это не объем памяти, о котором говорит скрипт, а только тот факт, что плагин пытался повысить лимит. Вы могли бы попросить своего хоста отключить эти сообщения для вас или – если у вас есть эти способности – настройте его самостоятельно.