Если WordPress на VDS начинает падать на импорте, обновлении плагинов, генерации превью или сохранении больших страниц, причина часто не в самом сайте, а в лимитах PHP. На практике чаще всего упираются в memory_limit и max_execution_time: первый ограничивает память на один запрос, второй — сколько секунд скрипт может выполняться без завершения.
На хостинге эти параметры обычно уже выставлены. На VDS их приходится проверять и настраивать вручную, особенно если сайт использует тяжелую тему, конструктор, большие изображения или несколько плагинов, которые работают в админке.
Когда проблема действительно в лимитах PHP
Симптомы похожи на «глючит WordPress», но у них есть типичные признаки. Если вы видите белый экран, ошибку Allowed memory size exhausted, зависание при обновлении плагина или обрыв импорта без понятной причины, сначала смотрите именно лимиты PHP и логи.
Что проверить в первую очередь
- ошибки в
wp-content/debug.logили системном error log PHP-FPM; - значение
memory_limitвphpinfo()или черезphp -i; - не упирается ли сайт в лимит процесса PHP-FPM, если на сервере мало RAM;
- не слишком ли короткий
max_execution_timeдля импорта, резервного копирования или массового обновления.
Важно не путать проблему PHP с нехваткой памяти на уровне всего сервера. Если VDS уже забит по RAM, увеличение memory_limit только ускорит падение процессов. Тогда сначала надо смотреть нагрузку, swap и настройки PHP-FPM.
Диагностика: где именно упирается WordPress
Самый практичный способ — посмотреть реальные значения, которые использует сайт, а не те, что прописаны в одном из конфигов. На VDS часто встречается ситуация, когда в php.ini одно значение, в пуле PHP-FPM другое, а в панели управления — третье.
Проверка через временный файл
Создайте в корне сайта файл phpinfo.php и откройте его в браузере только на время проверки:
<?php
phpinfo();
Найдите строки memory_limit, max_execution_time, upload_max_filesize и post_max_size. Для WordPress важны не только первые два параметра: если вы загружаете большие медиафайлы, ограничения на размер POST-запроса тоже могут ломать админку.
После проверки файл нужно удалить. Оставлять phpinfo() на рабочем сайте — плохая идея: он показывает слишком много технической информации.
Проверка из командной строки
Если есть SSH-доступ, удобнее смотреть настройки напрямую:
php -i | grep -E 'memory_limit|max_execution_time|post_max_size|upload_max_filesize'
Но помните: CLI и PHP-FPM могут использовать разные конфиги. Команда полезна для ориентира, но не заменяет проверку именно веб-окружения.
Как правильно поднять лимиты на VDS
Универсального значения нет: оно зависит от темы, плагинов и объема памяти на сервере. Для обычного сайта часто достаточно умеренного увеличения, а не максимальных цифр «на всякий случай». Слишком высокий memory_limit на слабом VDS может привести к тому, что несколько тяжелых запросов одновременно съедят всю RAM.
Вариант 1. Изменить настройки PHP для сайта
Если у вас отдельный пул PHP-FPM или отдельная версия PHP для домена, лучше менять параметры именно там. В зависимости от панели это может быть файл пула, отдельный php.ini или настройки домена в панели управления.
Пример для php.ini или аналогичного файла конфигурации:
memory_limit = 256M
max_execution_time = 120
max_input_time = 120
post_max_size = 64M
upload_max_filesize = 64M
После изменения конфигурации нужно перезапустить PHP-FPM или применить настройки через панель. Без этого значения могут не подхватиться.
Вариант 2. Задать лимит в WordPress
Если нужно быстро поднять лимит только для WordPress, можно добавить константу в wp-config.php. Это не заменяет серверную настройку, но помогает в типовых случаях.
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
WP_MEMORY_LIMIT используется для обычных запросов, а WP_MAX_MEMORY_LIMIT — для более тяжелых операций в админке, например при обработке изображений или массовых действиях. Но если PHP-FPM на сервере ограничен ниже, чем вы указали в WordPress, константа не спасет.
Вариант 3. Увеличить timeout только там, где это нужно
Поднимать max_execution_time до больших значений без причины не стоит. Если проблема возникает только при импорте или миграции, лучше решить ее точечно: разбить импорт на части, использовать фоновые задачи или временно увеличить лимит на время операции.
| Способ | Где менять | Плюс | Минус |
|---|---|---|---|
| php.ini / пул PHP-FPM | Сервер | Работает для всего сайта | Нужно понимать структуру конфигов |
| wp-config.php | WordPress | Быстро и просто | Не решает ограничения на уровне PHP-FPM |
| Панель хостинга | Интерфейс панели | Удобно для типовых задач | Не всегда видно, что реально применилось |
Пошаговая настройка без лишнего риска
Если сайт уже работает нестабильно, меняйте параметры по одному и сразу проверяйте результат. Так проще понять, что именно помогло, и не создать новую проблему.
- Снимите текущие значения через
phpinfo()илиphp -i. - Проверьте, хватает ли RAM на VDS с учетом других сайтов и сервисов.
- Поднимите
memory_limitдо разумного значения, например с 128M до 256M. - Если проблема связана с долгой операцией, увеличьте
max_execution_timeдо 120 секунд только для нужного сайта. - Перезапустите PHP-FPM или примените настройки в панели.
- Повторите действие, которое раньше ломалось: импорт, обновление, сохранение записи, генерацию миниатюр.
Проверка результата после внедрения
Проверять нужно не только отсутствие ошибки, но и поведение сайта под той же нагрузкой, которая раньше вызывала сбой. Если импорт завершился, а админка стала заметно медленнее, значит лимиты подняты слишком высоко или серверу не хватает ресурсов.
Что считать успешной проверкой
- ошибка
Allowed memory size exhaustedбольше не появляется в логах; - обновление плагинов проходит без обрыва;
- сохранение больших страниц в редакторе не зависает;
- загрузка медиафайлов и генерация превью завершаются без таймаута;
- в логах PHP-FPM нет повторяющихся fatal error после изменения настроек.
Если вы меняли значения в wp-config.php, проверьте, что они действительно применились. Иногда на сервере уже есть более жесткое ограничение, и WordPress просто не может его превысить.
Частые ошибки и как их исправить
Поставили слишком высокий memory_limit
Это частая ошибка на VDS с ограниченной памятью. Если задать 512M или 1024M без расчета, несколько одновременных запросов могут съесть всю RAM. Итог — не ускорение, а падение PHP-FPM или всего сервера. Начинайте с умеренного значения и смотрите на реальную нагрузку.
Изменили не тот конфиг
На сервере может быть несколько версий PHP и несколько пулов. Вы правите один файл, а сайт работает через другой. Если после перезапуска ничего не поменялось, проверьте путь к активному пулу и версию PHP именно для домена.
Забыли перезапустить PHP-FPM
Некоторые настройки применяются только после рестарта сервиса. Если панель не делает это автоматически, изменения в конфиге останутся «на бумаге».
Путают timeout PHP и timeout Nginx
Если запрос обрывается ровно через одинаковое время, проблема может быть не в PHP, а в веб-сервере или прокси. Тогда нужно смотреть fastcgi_read_timeout, proxy_read_timeout или настройки панели, а не только max_execution_time.
Что еще проверить на VDS, если лимиты не помогли
Когда память и timeout уже подняты, а WordPress все равно ведет себя плохо, проблема может быть в соседних слоях. Иногда сайт тормозит из-за тяжелого плагина, медленной базы данных, отсутствия object cache или слишком слабого диска. В таких случаях увеличение лимитов лишь маскирует первопричину.
Полезно посмотреть:
- нагрузку CPU и RAM в
htop; - ошибки MySQL/MariaDB;
- медленные запросы к базе;
- конфликты плагинов в админке;
- размер и количество изображений, которые обрабатывает сайт.
Безопасность и производительность
Не держите на сайте лишние диагностические файлы вроде phpinfo.php. Не поднимайте лимиты «вслепую» только потому, что так советуют на форуме. На VDS важнее контролировать баланс между удобством WordPress и реальными ресурсами сервера.
Если сайт регулярно упирается в память, лучше сначала убрать лишние плагины, проверить тяжелые запросы и оптимизировать медиа. Иногда разумнее ускорить конкретную операцию, чем постоянно держать завышенные лимиты для всего сайта.
Если вам нужно не только поднять лимиты, но и почистить WordPress от лишнего технического мусора, дублирующихся мета-данных и перегруженных настроек, имеет смысл смотреть в сторону инструментов вроде Clearfy Pro: https://wpshop.ru/plugins/clearfy?utm_source=wp-host.ru&utm_medium=article&utm_campaign=kak-nastroit-php-memory-limit-i-max-execution-time-dlya-wordpress-na-vds. Но даже в этом случае сначала стоит устранить серверную причину, а не лечить симптомы плагином.