#Что означает сообщение
Ошибка обработки изображений
Установите php-gd или php-imagick, проверьте memory_limit и размер изображений.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет расширения | Нет gd/imagick в активном веб-PHP | Установить расширение для нужной версии |
| Мало памяти | Ошибка Allowed memory size exhausted | Ограничить размеры и память обработки |
| Огромные изображения | Очень большое разрешение при небольшом JPEG | Вычислить память растрового изображения |
| Неверный формат | Файл не является заявленным форматом | Проверить кодек и сигнатуру |
#Пошаговое решение
- Уточните расширение, формат и тип отказаПроверьте журнал 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 могут иметь разные установленные модули. - Поставьте расширение для активной версии PHPЕсли GD/Imagick действительно отсутствует, установите подходящий модуль через менеджер пакетов ОС либо панель управления используемой сборки PHP; имя пакета зависит от ОС и версии (
php-gd, версия PHP-GD,php-imagick). В панели хостинга включите расширение для конкретного сайта. Затем перезапустите только нужный PHP-FPM, если этого требует способ установки. Не копируйте случайные DLL/so из интернета в каталог расширений. - Проверьте лимит памяти и входное изображениеУбедитесь, что приложение получает допустимый JPEG/PNG/WebP с верным MIME и сигнатурой, а не повреждённый файл под другим расширением. Растровое изображение шириной 8000×6000 пикселей может потребовать сотни мегабайт только для распаковки и копий. Ограничьте максимальные размеры и обработку загрузок, применяйте уменьшение по этапам или выделенный обработчик. Для Imagick дополнительно проверяйте ограничения ImageMagick на память и диск.
- Повторите обработку и проверьте готовый файлЗагрузите небольшой известный исправный снимок, затем файл, вызвавший сбой; проверьте наличие результата и его реальные размеры. Если проблема только у определённого формата, проверьте поддержку кодека в установленной GD/Imagick. Удалите диагностические страницы и сохраните обезличенный журнал с точным расширением, версией PHP и потреблением памяти, если ошибка остаётся.
#На что обратить внимание
Не оставляйте публичную страницу phpinfo и не повышайте memory_limit без оценки объёма изображений. Для загрузок проверяйте MIME и реальные сигнатуры файлов.