Installing ImageMagick on Mac OSX for PHP and MAMP

Manual Installation

Install Ghostscript

Ghostscript is going to be doing the actual conversion for ImageMagick

  1. brew install ghostscript

If there is a failure try running brew update and then the command again.

Compile ImageMagick

ImageMagick must be compiled with ghostscript support to convert PDFs to images.

  1. brew install ImageMagick --with-ghostscript

After the above you should be able to execute convert -list delegate and see some entries for pdf.

Create PHP imagick.so extension

PHP will use ImageMagick through the extension imagick.so

  1. pecl install imagick. Record the location of imagick.so when this command is finished.

  2. Locate your php.ini file php --ini | grep "Loaded Configuration File.

  3. Locate your extension directory cat /Applications/MAMP/bin/php/php5.3.6/conf/php.ini | grep extension_dir

  4. Copy imagick.so into extension directory if its not already there (pecl may already have done it).

If you receive the error: php_imagick.h:40:10: fatal error: 'php.h' file not found then please reference: MAMP doesn’t ship with a bunch of the PHP sources

If autoconf is missing: Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable ... then check for autoconf in /usr/bin or /usr/local/bin. If not present install autoconf : brew install autoconf Set $PHP_AUTOCONF variable: export PHP_AUTOCONF=/usr/local/bin/autoconf

Configure PHP to use imagick.so extension

Add this line into your php.ini file

extension=imagick.so

Test for success

Run the following to test for successful install. 1 should be printed if it finds the class.

  1. php -r "print(class_exists('imagick'));"

Restart apache
  1. Restart apache through MAMP.

Problems

PHP will not load extension or apache fails to start
  • Symbol not found: __cg_jpeg_resync_to_restart

  • Incompatible library version: libMagickWand-Q16.7.dylib requires version 14.0.0 or later

Comment out references to DYLD_LIBRARY_PATH in MAMP's environment configuration. This can have unintended consequences!

  1. vi /Applications/MAMP/Library/bin/envvars

convert works from command line but not from apache
  • Postscript delegate failed

Make sure apache has access to ghostscript. See gs not in apache's environment path.

  1. ln -s /usr/local/bin/gs /usr/bin/gs


标签:none