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