Skip to content

Enhancement: Use Imagick PHP extension instead of calling ImageMagick directly

Update AtoM to use the Imagick PHP extension. Phase out calling ImageMagick with the PHP exec() function.

Changes recommended:

  • Update AtoM installation process & docs, any ansible scripts that install PHP, and Dockerfile to install https://github.com/Imagick/imagick PHP extension.
  • Update AtoM to use the Imagick PHP extension in lib/model/QubitDigitalObject.php
  • Find any other potential calls to ImageMagick: e.g. plugins/sfThumbnailPlugin/lib/sfImageMagickAdapter.class.php
  • Provide a secure policy.xml to block dangerous and unused file formats.

There are numerous other places in AtoM where exec() is used - these should be examined to see if these calls can similarly be replaced with a call to a library/API.

Copied from this Tier 3 card.