Imagick выбрасывает исключения width or height exceeds limit / cache resources exhausted

При обработке больших файлов можно столкнуться с проблемой настройки лимитов в Imagick по умолчанию и связанными с ними ошибками. В php это выглядит так:

Uncaught ImagickException: width or height exceeds limit
Лимиты imagick проверяются в командной строке вот так:
$ identify -list resource
Resource limits:
  Width: 16KP
  Height: 16KP
  List length: 18.446744EP
  Area: 128MP
  Memory: 256MiB
  Map: 512MiB
  Disk: 1GiB
  File: 768
  Thread: 32
  Throttle: 0
  Time: unlimited

Чтобы пофиксить проблему открываем /etc/ImageMagick-6/policy.xml

и крутим настроечки:

<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>

В командной строке настройки подхватятся сразу, а php наверняка хранит эти настроечки в памяти, поэтому после их изменения обязательно рестратим fpm или apache2 сервисы.

Но не нужно спешить, если столкнулись с такими исключениями, то вероятно столкнетесь в последствии и с таким:

Uncaught ImagickException: width or height exceeds limit
это решается подкруткой в том же файле policy.xml
<policy domain="resource" name="disk" value="1GiB"/>

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *