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

Source: https://support.kapsulehost.com/ru-ru/wordpress-memory-limit

Когда 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, которая появляется только под нагрузкой.

> **Note:** Прежде чем что либо менять, убедитесь, что причина действительно в памяти. Откройте **Параметры** сайта, затем вкладку **PHP**, прокрутите до **Журнал ошибок PHP** и нажмите **Загрузить журнал**. Откроются последние 200 записей с фильтром по уровню. Ошибка исчерпания памяти отображается как **Fatal**. Если журнал пуст, проблема в другом: попробуйте статьи [Белый экран WordPress](https://support.kapsulehost.com/ru-ru/wordpress-white-screen) и [Чтение журналов ошибок](https://support.kapsulehost.com/ru-ru/error-logs).

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

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

![Параметры PHP для сайта в KPanel, где выбирается лимит памяти](https://support.kapsulehost.com/help/screenshots/wordpress-memory-limit.b15db306.webp)

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

> **Tip:** Новое значение не всегда вступает в силу при самой первой следующей загрузке страницы. Сервер кэширует `.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 |

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

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

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

```php
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.

> **Warning:** Константа 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](https://support.kapsulehost.com/ru-ru/wordpress-woocommerce).

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

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

Смена версии перезапускает пул PHP сайта, поэтому ожидайте несколько секунд простоя. Подробности в статье [Смена версии PHP](https://support.kapsulehost.com/ru-ru/changing-php-version).

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

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

1. **Сделайте резервную копию.** Сначала всегда [Создание резервной копии](https://support.kapsulehost.com/ru-ru/taking-a-backup), каждый раз.
2. **Найдите плагин.** Отключайте плагины половинами, а не по одному: отключите половину, проверьте снова, затем разделите ту половину, где ошибка еще сохраняется. Можно также использовать **Plugin safe mode** на вкладке **WordPress**, затем **Plugins**, это отключает все плагины разом, не удаляя их данные.
3. **Проверьте тему.** Временно переключитесь на стандартную тему WordPress. Тема, выполняющая тяжелые запросы при каждой загрузке страницы, дает именно такую картину.
4. **Смотрите на операцию, а не на сайт в целом.** Если ошибка возникает только при импорте, проблема в времени выполнения и размере пакета, а не в памяти. Импортируйте меньшими частями.
5. **Читайте журнал.** **Журнал ошибок PHP** на вкладке PHP указывает файл и строку, где закончилась память, что обычно сразу позволяет определить плагин.

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