Install Imagick for PHP and Apache on Windows
imagick, php, windows
Solution
EDIT: This procedure works with Windows 7 - 10 and all versions of PHP as well. Unofficial sites may be discontinued or later be altered to contain malicious code instead. Please use caution when using any recommended links or mirrors other than the official ImageMagick, PECL, or PHP sites provided in comments or other answers.
I was unable to get Imagick Working with PHP using an older release of ImageMagick as in the originally accepted answer and it was difficult to find mirrors with the exact safe binaries needed (the binaries on the mirror in the originally accepted answer downloaded as different versions than listed)
In all of the steps below, be sure to match your PHP architecture (x86/x64 and NTS/TS) to the binary's architecture. If you are using PHP x86 - replace the x64 version of the downloads with the x86 (or 32bit) version. The same applies to Thread-Safe (TS) and Non-Thread-Safe (NTS) versions of PHP.
PHP Imagick Extension
- Navigate to https://pecl.php.net/package/imagick and download the latest DLL `(3.3.0RC1)` at time of this answer.
- Extract `php_imagick.dll` to `D:\php5.6\ext`
- Extract all `CORE_RL_*.dll` files to `D:\php5.6` -
- Ensure `D:\php5.6` is already added to the `PATH` of your system environment variables
- Add `extension = php_imagick.dll` to `D:\php5.6\php.ini`
- Restart Apache, PHP-FPM, or PHP Built-In Web Server
- Check `phpinfo();` to ensure the module is installed correctly Note the highlighted ImageMagick version `(ImageMagick 6.9.1-2 Q16 x64)` and the missing supported formats
ImageMagick Binary
- (1a) Download and install the matching version of ImageMagick to `D:\php5.6\bin` from https://www.imagemagick.org/script/download.php - Ensure that the `Add Path to Environment Variables` option is checked or manually add it
- (1b) Alternatively download the PECL dependencies for your version of the Imagick PECL extension, see below for more details.
- Load a command prompt (run as administrator which forces the system path variable to refresh) and ensure `convert --version` displays the correct version
- Delete the previously extracted `CORE_RL_*.dll` files in `D:\php5.6` (they will be loaded via ImageMagick path - otherwise your PHP installation may become unstable with the PECL dlls)
- Restart Apache, PHP-FPM, or PHP Built-In Web Server
- Check `phpinfo();` to ensure the module is still installed correctly and is now loading the Imagick supported formats
Imagick PDF as Image Support - Ghostscript (optional)
- Optionally download and install Ghostscript to `D:\php5.6\bin` to be able to convert PDFs to images from http://sourceforge.net/projects/ghostscript/ be sure to match the architecture for your installation
I did not need to add `MAGICK_HOME` for Imagick to work using the PHP Built-In Web Server or CGI, but may be required for Apache using `mod_php`. See the Special Considerations section below for additional details.
PECL Imagick Dependencies (1b)
You can alternatively download the required ImageMagick version dependencies and extract the `exe` and `dll` files from within the `bin` directory directly into your `D:\php5.6` directory. The dependencies can be found on PECL website http://windows.php.net/downloads/pecl/deps/
Using the PECL dependencies removes the need to directly download and run the matching ImageMagick version installer from the vendor's website.
With the PECL dependencies method there were issues with excluded files needed for PDF conversions using GhostScript.
Special Considerations
Be sure the user running PHP has permission to execute `convert`. This should be inherited via `D:\php5.6\bin` but in case you chose to install to `C:\Program Files`. you may have issues due to its restricted permissions.
Be sure to rearrange your `PATH` System Environment Variable so that `%SystemRoot%\system32\convert.exe` does not override the `D:\php5.6\bin\convert.exe`. By adding your PHP path to the left of system32, like so: PATH: `D:\php5.6\bin;%SystemRoot%\system32;%SystemRoot%;...`
This will force your system to look for executable files within `D:\php5.6\bin` prior to `%SystemRoot%\system32`
Replace `D:\php5.6\bin\convert.exe` with the path to where you installed ImageMagick or the path to where `convert.exe` is located
https://technet.microsoft.com/en-us/library/cc723564.aspx#XSLTsection127121120120
Problem
Steps I've taken so far: - I have installed Imagick on my Win7 machine, and it's installed and running properly via command line. - I've extracted the contents of php_imagick-3.1.2-5.6-ts-vc11-x86.zip available here into my \PHP\ext directory. - Enabled the imagick.dll in php.ini - Rebooted... - No errors when starting Apache. - I'm still getting the `Fatal error: Class 'Imagick' not found` error when I try to run a script that uses Imagick. Current Versions: - Windows 7 x64 - Apache 2.4.10 x86 VC11 (from Apachelounge) - PHP 5.6.3 x86 VC11 TS (from windows.php.net) - ImageMagick 6.9.0-0 Q16 x86 (from imagemagick.org) - Imagick DLL php_imagick-3.1.2-5.6-ts-vc11-x86.zip (from here) I was running an older version of PHP and had Imagick working fine with that, then I updated PHP (and the Imagick DLLs along with it) and now I can't seem to get it to work. Looking at `phpinfo( )`, I don't see Imagick listed there, so it doesn't seem to be loading the module at all. Which is weird, because I'm not getting any errors when starting Apache. I've tried just about every write-up and walkthrough for installing Imagick for PHP on Windows, but they seem to all be written for older versions of PHP. Can somebody help me get this installed and running? It seems like it's just missing one simple step that I can't seem to figure out. If you need any more info, please ask. I'll get you whatever I can to help.