#Признаки проблемы и применимость
В Битрикс оригиналы фотографий загружаются и открываются, но уменьшенные копии не создаются либо показываются пустыми. Виноват может быть модуль обработки изображений PHP, исчерпание памяти, повреждённый оригинал, некорректный формат или недоступный каталог кеша.
#Причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет поддержки формата в GD/ImagickНет поддержки формата в GD/Imagick. JPEG миниатюрится, современный HEIC/AVIF нет | JPEG миниатюрится, современный HEIC/AVIF нет | Сверить поддержку формата и расширения |
| Не хватает памяти при декодированииНе хватает памяти при декодировании. Большие пиксельные размеры вызывают memory exhausted | Большие пиксельные размеры вызывают memory exhausted | Проверить лимит и размеры источника |
| Нет записи в каталог кешаНет записи в каталог кеша. Оригинал есть, миниатюра по пути кеша 403/404 | Оригинал есть, миниатюра по пути кеша 403/404 | Проверить точный каталог и права |
#Пошаговая диагностика и исправление
- Сравните оригинал и миниатюруВ карточке элемента откройте оригинал в новой вкладке и сломанное превью отдельно, запишите HTTP-коды и расширения. Если оригинал не открывается, сначала решайте проблему загрузки/пути, а не создания миниатюр.
- Испытайте два безопасных изображенияНа тестовом элементе загрузите маленький JPEG и фотографию того же формата с большими размерами в пикселях. Сравните, при каком файле создаётся превью. Размер в мегабайтах не равен объёму памяти, требуемой для распаковки картинки.
- Проверьте журнал PHP веб-обработчикаЧерез панель хостинга посмотрите ошибки по времени генерации. Ищите Allowed memory size exhausted, Call to undefined function imagecreatefromjpeg, исключения Imagick. На основании одной ошибки не увеличивайте memory_limit всему серверу.
- Уточните поддержку форматаВ настройках PHP конкретного домена проверьте расширение GD или Imagick и поддерживаемые форматы. Если установлено несколько PHP, важно проверить расширения веб-пула, а не только php -m по SSH.
- Проверьте права кеша изображенийИспользуя штатную «Проверку системы» Битрикс и файловый менеджер, найдите реальный каталог хранения превью, часто в /upload/resize_cache. Проверьте доступ записи под пользователем PHP и свободное место. Не удаляйте весь /upload или каталог медиа ради восстановления одного превью.
- Очистите только проверяемую производную копиюНа тестовой копии сайта через поддерживаемый механизм пересоздайте превью одного изображения. Перед удалением отдельного кешированного файла убедитесь, что исходник сохранён и путь относится именно к производной копии, а не оригиналу.
- Проверьте форматы и размеры после исправленияОткройте миниатюры разных размеров на той же странице и на мобильном браузере, убедитесь, что не появляется новая ошибка в журнале. Если отображение сломалось для других форматов, верните прежнюю конфигурацию расширения и сопоставьте библиотеки.
#Проверка результата
Оригиналы и уменьшенные изображения открываются без ошибок, тестовые файлы разных поддерживаемых размеров дают корректные миниатюры, журнал PHP остаётся чистым.
#Что делать, если не помогло
Если файл миниатюры существует, но браузер не показывает его, проверьте Content-Type, кэш CDN и соответствие содержимого формату. Если файла нет, исследуйте PHP и права записи.