Перейти к содержимому
Перейти в KPanelПерейти в KPanel
Содержание
WordPress

Увеличение лимита памяти WordPress

Машинный перевод. Английский оригинал доступен.

Когда WordPress или плагин падает с ошибкой нехватки памяти, решением является повышение лимита памяти PHP, и на KapsuleHost это делается через выпадающий список в KPanel, а не через редактирование файла. В этом руководстве рассказывается, что означает эта ошибка, как изменить лимит, какое значение выбрать и что делать, если увеличение памяти не помогает.

Что представляет собой ошибка

Самая очевидная форма: фатальная ошибка, выведенная на странице или записанная в журнал ошибок:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes)

Разделите значение в байтах на 1 048 576, чтобы получить мегабайты: 268435456 это 256 МБ, 134217728 это 128 МБ.

Ошибка не всегда проявляется настолько явно. Та же самая проблема может выглядеть как:

  • Полностью пустая белая страница без какого либо сообщения, часто на одном конкретном экране.
  • Панель администратора WordPress загружается, но одна конкретная страница (Плагины, Товары, Site Health) падает.
  • Загрузка медиафайла или импорт доходит до середины и останавливается.
  • Ошибка 500, которая появляется только под нагрузкой.

Прежде чем что либо менять, убедитесь, что причина действительно в памяти. Откройте Параметры сайта, затем вкладку PHP, прокрутите до Журнал ошибок PHP и нажмите Загрузить журнал. Откроются последние 200 записей с фильтром по уровню. Ошибка исчерпания памяти отображается как Fatal. Если журнал пуст, проблема в другом: попробуйте статьи Белый экран WordPress и Чтение журналов ошибок.

Изменение лимита в KPanel

  1. Войдите в KPanel и нажмите Веб-сайты в левой боковой панели.
  2. Выберите сайт, который нужно изменить.
  3. В меню этого сайта откройте Параметры, затем PHP.
  4. Найдите карточку Параметры PHP и строку Лимит памяти.
  5. Выберите значение в выпадающем списке: 128M, 256M, 512M, 1024M или 2048M.
  6. Нажмите Сохранить параметры.

Параметры PHP для сайта в KPanel, где выбирается лимит памяти

Перезапуск не требуется, и сайт все это время остается доступным. Ваши настройки записываются в файл .user.ini в корне сайта, которым управляет KPanel.

Новое значение не всегда вступает в силу при самой первой следующей загрузке страницы. Сервер кэширует .user.ini на срок до пяти минут, так что если старый лимит все еще отображается, подождите несколько минут и проверьте снова, прежде чем решить, что изменение не применилось.

Та же карточка управляет еще четырьмя значениями, которые часто нужно корректировать вместе с памятью:

ПараметрВариантыУвеличивайте, когда
Лимит памятиот 128M до 2048MФатальные ошибки памяти, пустые экраны админки
Максимальное время выполненияот 30 до 600 секундИмпорты, экспорты и построение отчетов останавливаются на середине
Максимальный размер загрузкиот 16M до 256MАрхив темы или видео отклоняется как слишком большой
Максимальное число входных переменныхот 1000 до 10000Большие меню, объемные формы, товары со множеством вариаций

Параметр post max size не показан, поскольку KapsuleHost задает его автоматически, всегда на 1 МБ выше лимита загрузки, чтобы форма с файлом на пределе размера все равно проходила.

Какое значение выбрать

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

СайтРекомендуемый лимит
Сайт визитка или блог на легкой теме256M более чем достаточно
Сайт на теме конструкторе страниц с 20 и более плагинами256M, затем 512M, если ошибки продолжаются
Магазин WooCommerce со скромным каталогом256M
WooCommerce с подписками, множеством вариаций или тяжелыми плагинами учета товаров512M
Сеть мультисайтов или крупный сайт с членствомот 512M до 1024M

Не переходите сразу к 2048M. Очень высокий лимит не делает сайт быстрее: он позволяет вышедшему из под контроля плагину потреблять гораздо больше ресурсов сервера, прежде чем произойдет сбой, из за чего одна неработающая страница превращается в медленную работу сайта для всех посетителей. Повышайте на один шаг, проверяйте заново и останавливайтесь, как только ошибка исчезнет.

Установка лимита в wp-config.php

Выпадающий список KPanel задает потолок на уровне сервера. У WordPress есть собственные две константы, которые запрашивают память в пределах этого потолка, и в некоторых документах вам порекомендуют их задать:

define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

WP_MEMORY_LIMIT относится к публичной части сайта. WP_MAX_MEMORY_LIMIT относится к административной области, которой обычно требуется больше памяти. Добавьте их выше строки /* That's all, stop editing! */ в wp-config.php, используя встроенный редактор в Параметры, затем Менеджер файлов, или через SFTP.

Константа WordPress никогда не может превысить лимит сервера. Установка WP_MEMORY_LIMIT в 1024M, пока в выпадающем списке KPanel указано 256M, даст вам фактически 256M и ложное ощущение, что проблема решена. Всегда сначала повышайте значение в KPanel.

Большинству пользователей эти константы не нужны. Задайте значение в KPanel и не трогайте wp-config.php.

Заметки по WooCommerce

Магазины чаще всего становятся причиной превышения 256M. Проверьте собственное представление магазина о лимите в WooCommerce, затем Status в панели wp-admin: отчет System Status выводит значение лимита памяти PHP, которое он видит, это хороший способ убедиться, что ваше изменение в KPanel действительно применилось.

Повышайте до 512M, если у вас есть что либо из следующего:

  • Вариативные товары с десятками вариаций у каждого.
  • WooCommerce Subscriptions или расширение для бронирования.
  • Два и более активных плагина платежных шлюзов одновременно.
  • Синхронизация учета товаров или бухгалтерии, работающая в фоновом режиме.

Медленные или зависающие страницы администрирования WooCommerce обычно связаны одновременно с памятью и временем выполнения. Повысьте Максимальное время выполнения до 120 секунд одновременно и рассмотрите варианты кэширования, описанные в статье Настройка WooCommerce.

Проверьте также версию PHP

Если ошибки памяти начались сразу после изменения версии PHP, причина может крыться в самой версии: старый плагин может сильно "течь" на более новой версии среды выполнения. Карточка Версия PHP в верхней части той же вкладки показывает, какая версия используется на сайте, и позволяет переключаться между PHP 8.4, 8.3, 8.2 и 8.1.

Смена версии перезапускает пул PHP сайта, поэтому ожидайте несколько секунд простоя. Подробности в статье Смена версии PHP.

Если увеличение памяти не помогает

Если повышение лимита дважды не дало улучшения, значит что то потребляет память, чего быть не должно. Разберитесь по порядку:

  1. Сделайте резервную копию. Сначала всегда Создание резервной копии, каждый раз.
  2. Найдите плагин. Отключайте плагины половинами, а не по одному: отключите половину, проверьте снова, затем разделите ту половину, где ошибка еще сохраняется. Можно также использовать Plugin safe mode на вкладке WordPress, затем Plugins, это отключает все плагины разом, не удаляя их данные.
  3. Проверьте тему. Временно переключитесь на стандартную тему WordPress. Тема, выполняющая тяжелые запросы при каждой загрузке страницы, дает именно такую картину.
  4. Смотрите на операцию, а не на сайт в целом. Если ошибка возникает только при импорте, проблема в времени выполнения и размере пакета, а не в памяти. Импортируйте меньшими частями.
  5. Читайте журнал. Журнал ошибок PHP на вкладке PHP указывает файл и строку, где закончилась память, что обычно сразу позволяет определить плагин.

Если проблема сохраняется даже после 512M и чистой проверки плагинов, напишите на support@kapsulehost.com, указав домен сайта, точный текст фатальной ошибки и что именно вы делали в момент ее появления.

Это было полезно?

Вы ИИ? Читайте эту страницу в Markdown

Похожие статьи

Установка WordPressУстановка WordPress через KapsuleHost выполняется автоматически. Это руководство описывает два способа установки, управление учётными данными, доступ к панели…WordPress: с чего начатьЧто делает KapsuleHost для сайта на WordPress, что вы по-прежнему делаете сами, и какое руководство читать для каждой задачи.…Автоматические обновления WordPressАвтоматические обновления поддерживают ядро WordPress, плагины и темы в актуальном состоянии без необходимости следить за релизами, и делают это безопасно:…Платёжные шлюзы для магазина WooCommerceВкладка «Платежи» показывает платежные системы, доступные для вашего магазина на WooCommerce, отображает, какие из них установлены, а какие включены, и…

Всё ещё нужна помощь?

Спросите Kora, она знает ваш аккаунт, или свяжитесь с нашей командой.

Связаться с намиНаписать в поддержку