PHP: Allowed memory size exhausted

Скрипт превысил memory_limit: важно понять, это разовый тяжёлый процесс, утечка или слишком низкий лимит.

Хостинг и серверПроверка по симптомам

Проверьте по порядку

Сначала локализуйте слой сбоя и только потом меняйте конфигурацию.

  1. 1
    Найдите в логе конкретный файл и объём memory_limit.
  2. 2
    Сравните ошибку на обычном запросе и на импорте/генерации/обработке изображения.
  3. 3
    Проверьте размер входных данных и циклы, которые загружают всё в память.
  4. 4
    Не повышайте лимит бесконечно — сначала оцените ожидаемый профиль памяти.

Как читать результат

Тяжёлое изображение/импорт

Признак: Ошибка только на крупных файлах.

Что делать: Оптимизируйте потоковую обработку или лимиты загрузки.

Утечка/цикл

Признак: Память растёт на обычном запросе.

Что делать: Исправьте алгоритм/рекурсию.

Лимит слишком низкий

Признак: Рабочее приложение упирается в небольшой memory_limit.

Что делать: Поднимите до разумного значения после оценки.

Сохраняйте наблюдаемую ошибку

Код ответа, заголовки и запись в логе полезнее случайного «починилось после перезапуска»: именно они показывают, какой слой действительно сломался.