3

I have installed Imagick on Ubuntu 12.04 but still i get

Class 'Imagick' not found

When I check through terminal

php -m

I get

[PHP Modules] bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv imagick json libxml mbstring mhash openssl pcntl pcre PDO Phar posix readline Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib [Zend Modules] 

but when i check loaded extension through PHP script

get_loaded_extensions()

I am not getting imagick

Array ( [0] => Core [1] => date [2] => ereg [3] => libxml [4] => openssl [5] => pcre [6] => sqlite3 [7] => zlib [8] => bcmath [9] => bz2 [10] => calendar [11] => ctype [12] => curl [13] => dba [14] => dom [15] => hash [16] => fileinfo [17] => filter [18] => ftp [19] => gd [20] => gettext [21] => SPL [22] => iconv [23] => session [24] => intl [25] => json [26] => ldap [27] => mbstring [28] => mcrypt [29] => mssql [30] => standard [31] => mysqlnd [32] => mysqli [33] => mysql [34] => PDO [35] => pdo_mysql [36] => pdo_pgsql [37] => pdo_sqlite [38] => Phar [39] => posix [40] => Reflection [41] => imap [42] => shmop [43] => SimpleXML [44] => soap [45] => sockets [46] => exif [47] => sybase_ct [48] => sysvsem [49] => sysvshm [50] => tokenizer [51] => wddx [52] => xml [53] => xmlreader [54] => xmlwriter [55] => xsl [56] => zip [57] => apache2handler [58] => mhash ) 

php -i displays

imagick module => enabled imagick module version => 3.2.0RC1 imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator ImageMagick version => ImageMagick 6.6.9-7 2012-08-17 Q16 http://www.imagemagick.org ImageMagick copyright => Copyright (C) 1999-2011 ImageMagick Studio LLC ImageMagick release date => 2012-08-17 ImageMagick number of supported formats: => 206 ImageMagick supported formats => 3FR, A, AAI, AI, ART, ARW, AVI, AVS, B, BGR, BGRA, BMP, BMP2, BMP3, BRF, C, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FITS, FRACTAL, FTS, G, G3, GIF, GIF87, GRADIENT, GRAY, GROUP4, HALD, HDR, HISTOGRAM, HRZ, HTM, HTML, ICB, ICO, ICON, INFO, INLINE, IPL, ISOBRL, J2C, JNG, JP2, JPC, JPEG, JPG, JPX, K, K25, KDC, LABEL, M, M2V, M4V, MAC, MAP, MAT, MATTE, MIFF, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NULL, O, ORF, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, R, RADIAL-GRADIENT, RAF, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, Y, YCbCr, YCbCrA, YUV Directive => Local Value => Master Value imagick.locale_fix => 0 => 0 imagick.progress_monitor => 0 => 0 

getting this error in PHP log

PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20090626 PHP compiled with module API=20121212 
6
  • Your also run the code through terminal? Commented Jan 8, 2014 at 9:08
  • 1
    Have you restarted the web server? Commented Jan 8, 2014 at 9:08
  • Probably you haven't altered your php.ini Commented Jan 8, 2014 at 9:20
  • I have altered php.ini and added "extension=imagick.so" and also restarted web server but no change. Commented Jan 8, 2014 at 9:41
  • I am using XAMPP 1.8.3 (PHP 5.5.6). .so file is placed in /opt/lampp/lib/php/extensions/no-debug-non-zts-20121212/Imagick.so Commented Jan 8, 2014 at 9:48

3 Answers 3

5

Possible solution:

Double check the paths and php configuration - you might have the imagick.so file in another directory, not the one php is looking for extensions in ?

1) Locate the proper php.ini file - in your phpinfo() page it is pointed which php.ini is actually in use.

2) Make sure you have imagick.so in proper extension dir (the one php really uses). To check the actual path use:

php-config --extension-dir

3) if (1) and (2) are OK, enable the extension in php.ini

extension=imagick.so

4) restart web server, the imagick should be present (loaded) in phpinfo()

Remark #1

SO source post

Bear in mind that the following also apply

Your extension should compatible with your PHP server in three main attributes:

1- The Zend API number which your PHP server is configured with ( in phpinfo() you can find this number), this number should be the same with your extension header file at build time.

2- The compiler version on your PHP server and your extension must be the same.

3- Thread safety in your PHP server is important. If you use thread-safe server then your extension must be built with php thread-safe library and if you use non-thread safe server you should build your extension with PHP-nts library.

Remark #2

SO source post

Keep in mind that if an .so file is corrupt, is improper in other ways (incorrect file structure) or depends on files that are missing or not available for load - the extension will not be loaded and made available.

Remark #3

Note that the "php -m" shows modules compiled into php, not the loaded extensions. Try the below for more detailed information:

php -i

EDIT

The provided php error

Module compiled with module API=20090626
PHP compiled with module API=20121212

clearly indicates that you have the module compiled with improper API version that does not match the php. You will need to build the PHP extension manually. The extension you've ended up with seems to be built against a different version of PHP, not your current PHP 5.5.

There are numerous tutorials concerning this topic, just remember to use the proper version of imagick and phpize. This should help you out: http://wiki.dreamhost.com/ImageMagick_and_imagick_php_module_on_shared_hosting

Sign up to request clarification or add additional context in comments.

10 Comments

Still i am facing the same issue. php.ini not loading imagick extension
did you check the extension path ?
I am not sure weather i am using php thread-safe library or not as well as not sure about extension also that it is thread-safe or not. Can you please tell me how to check it?
yeah i did check path, and its the same
Is imagick present in phpinfo at all ? If still no luck, check apache error log for any related errors, maybe you will find some usefull info (like "PHP Warning: PHP Startup: Unable to load dynamic library ...")
|
2

Restart php

service php5-fpm restart 

Comments

0

In my case, I had it installed in the Docker container, but I was running my CLI script from the host machine, which didn't have Imagick.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.