How to Install the PHP ImageMagick Extension (IMagick)

Note

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.

Note

If your app requires the ImageMagick command line interface rather than the ImageMagick PHP extension, see the article on installing the ImageMagick executables

Important

JungleWP cannot provide support for customizations. We always recommend avoiding customizations unless you absolutely need to customize your server. Customizations increase complexity, and complexity often leads to downtime and vulnerabilities.

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

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

Warning

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

Still need help? Contact Us Contact Us