← ServerPilot Docs

How to Install the PHP ImageMagick Extension (IMagick)

In the examples shown, replace "X.Y" with your app's PHP version (for example, "7.4" or "8.3"). 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.

ServerPilot 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.6, 7.0, 7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2, and 8.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:


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:

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: November 20, 2023

Launch your first site in 5 minutes