‹ Articles

How to Install the PHP ImageMagick Extension (IMagick)

In the examples shown, replace "X.Y" with your app's PHP version (for example, "5.4" or "7.0"). To install a PECL extension for multiple PHP versions, repeat the PECL extension installation for each PHP version.
If your app requires the ImageMagick command line interface rather than the ImageMagick PHP extension, see the article on installing the ImageMagick executables.

The ImageMagick extension supports PHP 5.4, 5.5, 5.6, 7.0, 7.1, 7.2, and 7.3.

Imagick: The PHP ImageMagick Extension

The ImageMagick extension, called Imagick when referring to the PHP extension, is a native PHP extension to create and modify images using the ImageMagick API.

To install this extension, run the following commands as your server's root user:

sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install libmagickwand-dev
sudo peclX.Y-sp install imagick

When prompted with:

Please provide the prefix of Imagemagick installation [autodetect] :

just press Enter; do not type a prefix (that is, allow autodetect).

Once installed, create a configuration file for the extension and restart PHP by running the following commands as root:

sudo bash -c "echo extension=imagick.so > /etc/phpX.Y-sp/conf.d/imagick.ini"
sudo service phpX.Y-fpm-sp restart

Using Imagick with PDF Files

ImageMagick was not designed to securely handle untrusted PDF files. Enabling PDF file handling as shown below is dangerous if any malicious PDF files are ever processed.

Additionally, attempting to work around ImageMagick's PDF security issues by using Ghostscript directly is also dangerous as Ghostscript is also vulnerable to exploitation when processing malicious PDF files.

In order to allow ImageMagick to process PDF files, you must SSH into your server as root and edit the following file:

/etc/ImageMagick-6/policy.xml

Locate the line:

<policy domain="coder" rights="none" pattern="PDF" />

Comment out this line by replacing it with the following:

<!--<policy domain="coder" rights="none" pattern="PDF" />-->

Finally, restart PHP:

sudo service phpX.Y-fpm-sp restart

Verifying the Installation

You can verify the ImageMagick extension is installed with this command:

phpX.Y-sp -i | grep imagick

If ImageMagick is installed correctly, you will see the following:

/etc/phpX.Y-sp/conf.d/imagick.ini,
imagick
imagick module => enabled
imagick module version => 3.4.3RC1
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
Imagick compiled with ImageMagick version => ImageMagick 6.6.9-7 2016-06-01 Q16 http://www.imagemagick.org
Imagick using ImageMagick library version => ImageMagick 6.6.9-7 2016-06-01 Q16 http://www.imagemagick.org
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.skip_version_check => 0 => 0

Uninstalling the ImageMagick Extension

To uninstall this extension, as root run the commands:

sudo rm /etc/phpX.Y-sp/conf.d/imagick.ini
sudo peclX.Y-sp uninstall imagick

Next, restart PHP-FPM with the command:

sudo service phpX.Y-fpm-sp restart

Last updated: October 22, 2018

Still Have Questions?

Don't hesitate to contact us if you can't find the answers to your questions.