PHP PHP 7PHP 8

PHP: Fatal error: Allowed memory size exhausted

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

Скрипт превысил memory_limit. Увеличьте лимит в php.ini, .htaccess или ini_set, либо оптимизируйте код и запросы.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Как увеличить лимит
  5. Как найти причину
  6. Особые случаи
  7. Как проверить лимит на сервере

#Что означает ошибка

Сообщение
Fatal error: Allowed memory size exhausted

Fatal error: Allowed memory size of 134217728 bytes exhausted означает, что PHP-скрипт использовал больше памяти, чем разрешено директивой memory_limit. Число в сообщении — лимит в байтах (134217728 = 128 МБ), а во второй цифре указан размер запрошенной порции памяти, которая и превысила предел.

Типичные причины — обработка больших изображений и файлов, выборка в память огромных массивов данных из базы, тяжёлые плагины CMS и бесконечная рекурсия. Простое увеличение лимита помогает, но не устраняет «прожорливый» код.

Скрипт превысил memory_limit. Увеличьте лимит в php.ini, .htaccess или ini_set, либо оптимизируйте код и запросы.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Мал memory_limitЛимит.Ошибка.Увеличьте.
Тяжёлый запросДанные.Большая выборка.Постранично.
Утечка памятиЦикл.Растёт.Оптимизируйте.
Большие файлыЗагрузка.Обработка.Потоково.

#Пошаговое решение

  1. Узнайте текущий лимитВ журнале PHP найдите Allowed memory size of N bytes exhausted и конкретный файл/строку. В панели хостинга проверьте фактический memory_limit веб-PHP, а не только CLI. Если это большой импорт или обработка изображений, зафиксируйте объём входных данных и наблюдаемый расход памяти.
  2. Увеличьте memory_limitТолько если задача действительно должна потреблять больше памяти, администратор увеличивает memory_limit для нужного сайта/пула после расчёта RAM и числа воркеров. Значение вроде 256M — пример, не универсальная рекомендация. В PHP ini_set может быть запрещён и не поможет, если лимит задаётся пулом или панелью.
  3. Перезапустите PHPПосле изменения php.ini/pool-конфигурации выполните проверку синтаксиса и перезагрузите нужную службу PHP-FPM в согласованное окно. Затем через закрытую диагностическую страницу проверьте новый ini_get("memory_limit") и удалите её. Для PHP CLI проверяйте настройки отдельно.
  4. Найдите причинуПрофилируйте проблемную операцию: чтение всего файла вместо потоковой обработки, большие массивы, рекурсия, бесконечное накопление объектов, тяжелые плагины. Повторите на тестовом наборе данных и проверьте пик памяти через memory_get_peak_usage(true); повышение лимита без исправления утечки лишь отложит новый сбой.

#Как увеличить лимит

Измените memory_limit в php.ini (memory_limit = 256M) и перезапустите PHP-FPM/Apache. На хостинге лимит правится в панели; в WordPress можно добавить define('WP_MEMORY_LIMIT', '256M'); в wp-config.php. Для отдельного скрипта используйте ini_set('memory_limit', '512M'), если это разрешено хостингом.

#Как найти причину

В сообщении указан файл и строка, на которой превышен лимит. Проверьте, какие данные загружаются в память: используйте выборку частями (LIMIT/OFFSET, генераторы, курсоры), обработку файлов потоками. Измеряйте потребление через memory_get_peak_usage(). Для изображений ограничьте размер до обработки.

#Особые случаи

Различайте веб и CLI: у консольных скриптов (cron, artisan, wp-cli) может быть свой php.ini с другим лимитом. Лимит -1 снимает ограничение, но опасен: один скрипт займёт всю память сервера. Не применяйте его на рабочем сервере без ограничения по времени выполнения.

PHPКоманда
Измерение пикового потребления памяти и временное повышение лимита.
echo memory_get_peak_usage(true)/1048576 . " MB";
ini_set("memory_limit", "256M");

#Как проверить лимит на сервере

Выведите phpinfo() или выполните php -i | grep memory_limit и убедитесь, что изменение применилось к нужному окружению (веб или CLI). Если после правки php.ini значение прежнее, возможно, действует конфигурация пула PHP-FPM (php_admin_value) или файл .user.ini в каталоге сайта.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 1 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.