Отладка ограничения памяти PHP

#php #wordpress #debugging #fatal-error

#php #wordpress #отладка #фатальная ошибка

Вопрос:

У меня есть клиент с сайтом WordPress. Они используют пару плагинов, которые вызывают фатальные ошибки памяти. 2 плагина, в частности, являются Simple Map amp; Drain Hole .Я не уверен, какой именно из этих плагинов вызывает проблему. Simple Map используется для управления местоположениями или поставщиками, очень похоже на Google Places. Дренажное отверстие используется для защиты файлов с помощью маскировки URL.

В рамках Simple Map в настоящее время у них около 900 местоположений. В Drain Hole у них в настоящее время защищено около 700 файлов. Во время разработки у нас не возникало никаких проблем, так как наш лимит памяти PHP был установлен на 64 МБ. На их реальном сервере хост разрешает только 30 МБ и не позволит изменять это.

Моя проблема / вопрос заключается в следующем: если я перемещу их на новый хост, который позволяет по крайней мере 64 МБ, как я могу быть уверен, что если они продолжат добавлять к этим плагинам, что это не повторится? Есть ли способ проверить, являются ли эти скачки памяти законными или они являются результатом плохого, неэффективного кода?

РЕДАКТИРОВАТЬ: Похоже, что произошла фатальная ошибка. Это происходит только на определенных экранах панели администратора WordPress, особенно на тех, которые имеют дело с Simple Map. Хотя, если я отключу плагин Drain Hole, ошибка полностью исчезнет. Ошибка:

 **Fatal error:** Out of memory (allocated 34078720) (tried to allocate 44 bytes) in /fake/dir/wp-includes/wp-db.php on line 1400
  

Комментарии:

1. В каких строках возникают неустранимые ошибки?

2. Ваш хост только блокирует редактирование вашего php.ini? Если да, можете ли вы установить объем памяти в скрипте, используя ini_set(‘memory_limit’, 64);?

3. Они полностью заблокировали его. Я попробовал несколько способов увеличить ограничение. Хостинг в настоящее время с 1and1 (которого я ненавижу)

Ответ №1:

1and1 известен тем, что является плохим хостингом WP. WP 3.1 пытается выделить 64megs самому себе при запуске, и в wp-config.php вы можете добавить эту строку вверху

 define('WP_MEMORY_LIMIT', '128M');
  

чтобы захватить больше, если хост позволяет это. Найдите новый хост, если это возможно. Вы используете плагины интенсивным образом, что потребует такого количества оперативной памяти. Это может быть ошибкой плагинов и WP, но так оно и есть.

Комментарии:

1. Да, я переезжаю на новый хост, поскольку 1and1 не позволяет нам иметь более 30 МБ без перехода на выделенный.

Ответ №2:

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

Это было моим решением, когда я получил ту же ошибку.

Комментарии:

1. Я бы согласился, что в определенных случаях это решение. Однако в этом случае плагины действительно необходимы и технически работают нормально. У меня такое чувство, что в этом случае объем данных, которыми управляют эти плагины, больше, чем ожидалось, что является причиной скачков памяти на определенных страницах