39

I have installed ImageMagick using brew install imagemagick. This all worked fine and I can run any ImageMagick command from the Terminal / Command line.

Now when I try to use the ImageMagick classes in PHP, I get an error Class 'Imagick' not found in .... I guess this is because the ImageMagick module is not loaded.

Could anyone help me to get this thing working in PHP? Thanks!

Additional info:
Mac OS X Version: 10.8: Mountain Lion
PHP Version: 5.3.13

fmw42
  • 46,825
  • 10
  • 62
  • 80
Wouter Konecny
  • 3,260
  • 3
  • 19
  • 26

12 Answers12

47

php72-imagick is now deprecated as imagick is part of php binary itself. Use pecl to install imagick e.g.:

brew install php
brew install imagemagick
brew install pkg-config
pecl install imagick
Community
  • 1
  • 1
anytimecoder
  • 7,204
  • 2
  • 14
  • 18
  • 7
    if you encounter a "pkg-config not found" error after the "pecl install imagick" type "brew install pckg-config" and try again – Erwan Jun 24 '18 at 19:34
  • 2
    @Erwan I think there's a typo in that command - it seems there should not be a `c` in that command. What worked for me was `brew install pkg-config` – Jeff Puckett Jul 17 '19 at 02:10
  • This one actually worked for me. I failed to get `brew install php72-imagick` working. so `pecl install imagick` is the right answer for me. – Tuhin Nov 18 '20 at 16:47
  • Works for PHP 8.1 too! Thanks – Sliq Jan 13 '22 at 19:39
  • Thanks for sharing this set of steps. Worked a treat! – Matthew Setter Jul 04 '23 at 06:58
45

I just did this after a lot of experimenting. For now, this seems to be the way to do it for php 5.3:

brew tap josegonzalez/php
brew tap homebrew/dupes
brew install php53-imagick

No idea who Jose Gonzalez is but apparently we are in his debt....

Daniel Feder
  • 567
  • 1
  • 4
  • 6
  • 1
    If you could explain more about each step, it'd help everybody understand more .. I really appreciate your help here, but right now it's "giving us fish"; if you could take the time to "teach us to fish" also, that would be awesome :p – a20 Jun 11 '13 at 05:38
  • 2
    [His name is Jose Gonzalez, he wasn't just a code monkey, he was one of us!](http://www.youtube.com/watch?v=GCi_PIz5ekU) – a20 Jun 11 '13 at 05:40
  • 1
    The two "brew tap" commands add repositories, or places where homebrew can look for packages. These two contain libraries and other requirements to get imagick working. Once you've registered those repositories with your copy of homebrew, it will know where to look for php53-imagick and anything marked as a requirement. Does that answer your question? – Daniel Feder Aug 02 '13 at 19:22
  • 4
    Thanks, this worked for me. I also had to manually add [imagick] extension="/usr/local/Cellar/php53-imagick/3.1.0RC2/imagick.so" in /etc/php.ini. – jarnoan Aug 16 '13 at 07:59
  • 1
    not working now (homebrew/dupes was deprecated. This tap is now empty as all its formulae were migrated.) – HMagdy Dec 18 '18 at 21:12
32

Your ImageMagick installation is not enough. You also need the Imagick package (possibly called php72-imagick or similar for home brew).

Imagick doesn't do the work itself, it is a native PHP extension for creating and modifying images using the ImageMagick API.

Try to search for the exact name of the package via brew search imagick.

MAP Inc.
  • 17
  • 1
  • 8
Kurt Pfeifle
  • 86,724
  • 23
  • 248
  • 345
19

I'm using Yosemite. For me, the solution is a combination of the answer and comment already listed here.

brew install imagemagick
brew install php55-imagick

Edit /etc/php.ini to include imagick

extension=/usr/local/Cellar/php55-imagick/{version of php55-imagick}/imagick.so

Example:

extension = /usr/local/Cellar/php55-imagick/3.1.2_1/imagick.so
d.danailov
  • 9,594
  • 4
  • 51
  • 36
Mr. 14
  • 9,228
  • 6
  • 37
  • 54
17

I had the same issue. These are the steps that worked for me if you are using php 5.6

  1. brew install php56-imagick
  2. brew install imagemagick
  3. find /usr/local/Cellar -name "imagick.so"
    copy the path from the output of this command into your php.ini file
    e.g. extension=/usr/local/Cellar/php56-imagick/3.3.0_2/imagick.so save your file. Now to double check that the imagemagick class exists type
  4. php -r "print(class_exists('imagick'));"

Brew symlinking wasn't working for me so I had to put the full pathname into the php.ini file to get it to work. Hope this helps

roibeart
  • 82
  • 6
Frank Hag
  • 327
  • 2
  • 6
  • Just saved my bacon again! Can't upvote again though otherwise I would xx – Friendly Code Mar 08 '17 at 09:51
  • I just used this same method for imagemagick on php 7.1 -- This is valid. Homebrew moved the ini file for the extension so php already picked it up. Step 4 was perfect to test it right away in cli. – EffectiX Jan 18 '18 at 18:03
12

this one worked for me:

brew install imagemagick       # If it's not already installed
mkdir /usr/local/lib/php/pecl  # On my system this dir didn't exist and this caused pecl install to fail
pecl install imagick

here

Reza Babaei
  • 905
  • 1
  • 14
  • 22
4

Try:

brew install homebrew/php/php53-imagick
diazwatson
  • 121
  • 5
  • 12
4

I've looking for correct way to install imagick on Mojavie and found solution that fully worked.

  1. brew install imagemagick@6
  2. brew install php@7.1
  3. Install headers (Xcode-select --install)
  4. Download imagick source code from: https://pecl.php.net/package/imagick
  5. Open terminal and enter unzipped folder imagick-3.4.3/imagick-3.4.3 (in my case)
  6. Run command phpize
  7. ./configure
  8. make

And now if error occurs like MagicWand not found, edit file Makefile and look for CPPFLAGS = -I/usr/local/opt/imagemagick@6/include/. Inspect if in include folder there is no other folder. In my case it should be like this: CPPFLAGS = -I/usr/local/opt/imagemagick@6/include/ImageMagick-6

save and return to terminal and type make (after finished) sudo make install

imagick.so is located in imagick-3.4.3/imagick-3.4.3/modules

  • You can also follow instructions on github.com/Imagick/imagick (must just make sure imagemagick is installed first before building the php extension, worked in my case on OSX Catalina using the linux instructions) – Herz3h Jul 07 '21 at 11:05
2

Ok after 1 hour at this I have figured it out. The mac is not giving the pecl script permissions to make a PHP directory. To resolve do as follows.

brew install imagemagick
Sudo pecl install imagick .  
php --ini | grep "Loaded Configuration File"
Add extension=imagick.so under extensions.

The install will be complete. Then, to test run:

php -r "print(class_exists('imagick'));"
Jamie Ross
  • 246
  • 1
  • 3
  • 13
0

From: php error: Class 'Imagick' not found

Did you add extension=imagick.so to your php.ini (or /etc/php.d/imagick.ini) file?

Community
  • 1
  • 1
Jill-Jênn Vie
  • 1,849
  • 19
  • 22
  • I have added `extension=imagick.so` to my php.ini file in `/etc/php.ini` and did a `sudo apachectl restart`. Still not working. – Wouter Konecny Aug 08 '12 at 13:59
  • You can verify via ` phpinfo() ?>` if ImageMagick is loaded or not. Are you sure of `which php` you are using? – Jill-Jênn Vie Aug 08 '12 at 14:01
  • Yes, version `5.3.13` is shown in phpinfo(). The module does not seem to be loaded, how to fix this? – Wouter Konecny Aug 08 '12 at 14:05
  • I have been searching for a while now and it seems that `brew install imagemagick` does not install the PHP Module. However, `brew install imagick` does, but that formula is not (longer) available. – Wouter Konecny Aug 08 '12 at 14:11
  • Well this seems to be your last option: http://stackoverflow.com/a/11661050/827989 The link also features the commands to download and compile it directly. – Jill-Jênn Vie Aug 08 '12 at 14:13
  • That didn't work either, but thanks for your help! For now I will just do it the old-fashion way by compiling everything myself. I just hoped this would work with brew, as updating application (ImageMagick) versions is much easier that way. – Wouter Konecny Aug 08 '12 at 14:17
  • I want to confrm that @frankHag solution works for me. Thanks – Deepak Bhatta Mar 13 '17 at 11:04
0

I had the same error having already installed imagemagick and php71-imagick.

brew upgrade imagemagick - did the trick for me.

You may need sudo:

sudo brew upgrade imagemagick

You may need to restart apache / php-fpm / <other webserver>.

Henry
  • 7,721
  • 2
  • 38
  • 38
0

I cannot add comments because of reputation, but to add to this anwser:

answered Apr 12 at 16:52

Grzegorz Miśkiewicz

I was getting a missing php.h file, so as per Installing xdebug on MacOs Mojave - 'php.h' file not found I installed the necessary file via the below command:

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Maticb
  • 33
  • 4