PHP: не работает обработка изображений — GD или Imagick не установлены или мало памяти

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

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

Установите php-gd или php-imagick, проверьте memory_limit и размер изображений.

В этой статье
  1. Что означает сообщение
  2. Причины и признаки
  3. Пошаговое решение
  4. На что обратить внимание

#Что означает сообщение

Сообщение
Ошибка обработки изображений

Установите php-gd или php-imagick, проверьте memory_limit и размер изображений.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Нет расширенияНет gd/imagick в активном веб-PHPУстановить расширение для нужной версии
Мало памятиОшибка Allowed memory size exhaustedОграничить размеры и память обработки
Огромные изображенияОчень большое разрешение при небольшом JPEGВычислить память растрового изображения
Неверный форматФайл не является заявленным форматомПроверить кодек и сигнатуру

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

  1. Уточните расширение, формат и тип отказаПроверьте журнал PHP: Call to undefined function imagecreatefromjpeg, Class Imagick not found, Allowed memory size exhausted и ошибка декодирования файла означают разные причины. В терминале сервера выполните php -m | grep -Ei "gd|imagick" для CLI, но отдельно проверьте веб-PHP, например временной закрытой диагностической страницей с extension_loaded("gd") и extension_loaded("imagick"). Версии PHP-FPM могут иметь разные установленные модули.
  2. Поставьте расширение для активной версии PHPЕсли GD/Imagick действительно отсутствует, установите подходящий модуль через менеджер пакетов ОС либо панель управления используемой сборки PHP; имя пакета зависит от ОС и версии (php-gd, версия PHP-GD, php-imagick). В панели хостинга включите расширение для конкретного сайта. Затем перезапустите только нужный PHP-FPM, если этого требует способ установки. Не копируйте случайные DLL/so из интернета в каталог расширений.
  3. Проверьте лимит памяти и входное изображениеУбедитесь, что приложение получает допустимый JPEG/PNG/WebP с верным MIME и сигнатурой, а не повреждённый файл под другим расширением. Растровое изображение шириной 8000×6000 пикселей может потребовать сотни мегабайт только для распаковки и копий. Ограничьте максимальные размеры и обработку загрузок, применяйте уменьшение по этапам или выделенный обработчик. Для Imagick дополнительно проверяйте ограничения ImageMagick на память и диск.
  4. Повторите обработку и проверьте готовый файлЗагрузите небольшой известный исправный снимок, затем файл, вызвавший сбой; проверьте наличие результата и его реальные размеры. Если проблема только у определённого формата, проверьте поддержку кодека в установленной GD/Imagick. Удалите диагностические страницы и сохраните обезличенный журнал с точным расширением, версией PHP и потреблением памяти, если ошибка остаётся.

#На что обратить внимание

Не оставляйте публичную страницу phpinfo и не повышайте memory_limit без оценки объёма изображений. Для загрузок проверяйте MIME и реальные сигнатуры файлов.

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

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

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