Skip to content

Instantly share code, notes, and snippets.

@nivv
Last active November 28, 2021 11:38
Show Gist options
  • Save nivv/5d9a12af5472b91606e6 to your computer and use it in GitHub Desktop.
Save nivv/5d9a12af5472b91606e6 to your computer and use it in GitHub Desktop.
Guide - Enable imagick on PHP7

Guide

Note The extension Imagick is now included in Ondrej's PPA. All you need to do now is $ sudo apt-get install php-imagick, and you're done. I'll keep the guide here because a lot of it is still true for other extensions

======

I've installed PHP7 via Ondrej's PPA. He maintains these PPA's on his free time, consider donating

Install dependencies

$ sudo apt-get install php7.0-dev
$ sudo apt-get install pkg-config
$ sudo apt-get install libmagickwand-dev
$ sudo apt-get install imagemagick
$ sudp apt-get install build-essential
# Or
$ sudo apt-get install -y php7.0-dev pkg-config libmagickwand-dev imagemagick build-essential

Download extension

Mikko Koppanen have a PHP 7 compatible build of imagick. Be sure to download the phpseven branch (We're doing that below). I suppose you could clone the repo if you want the latest changes available more easily

I usually create a download directory for temporary downloads

mkdir downloads
$ cd downloads
$ wget https://github.com/mkoppanen/imagick/archive/phpseven.zip

Unzip it:

$ unzip phpseven.zip

Cd into it

$ cd imagick-phpseven

Make extension

Phpize it

$ phpize

Configure it and run make

$ ./configure
$ make
$ sudo make install

Tell PHP about the extension (Modified steps from Fideloper's guide for sphinx)

$ echo "extension=imagick.so" | sudo tee /etc/php/mods-available/imagick.ini

# Symlink it to fpm
$ sudo ln -s /etc/php/mods-available/imagick.ini /etc/php/7.0/fpm/conf.d/20-imagick.ini

# Symlink it to cli
$ sudo ln -s /etc/php/mods-available/imagick.ini /etc/php/7.0/cli/conf.d/20-imagick.ini

# Reload php-fpm
sudo service php7.0-fpm reload

Done!

@karborator
Copy link

CentOS way ?

@jaymecd
Copy link

jaymecd commented Jun 19, 2016

After install on alpine:3.4 (php:7.0.7) got SegFault:

# php --ri imagick; echo "Exit Code: $?"

imagick

imagick module => enabled
imagick module version => @PACKAGE_VERSION@
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 6.9.4-1 Q16 x86_64 2016-05-16 http://www.imagemagick.org
Imagick using ImageMagick library version => ImageMagick 6.9.4-1 Q16 x86_64 2016-05-16 http://www.imagemagick.org
ImageMagick copyright => Copyright (C) 1999-2016 ImageMagick Studio LLC
ImageMagick release date => 2016-05-16
ImageMagick number of supported formats:  => 217
ImageMagick supported formats => 3FR, AAI, AI, ART, ARW, AVI, AVS, BGR, BGRA, BGRO, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DATA, DCM, DCR, DCX, DDS, DFONT, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, FAX, FITS, FRACTAL, FTS, G3, GIF, GIF87, GRADIENT, GRAY, GROUP4, GV, H, HALD, HDR, HISTOGRAM, HRZ, HTM, HTML, ICB, ICO, ICON, IIQ, INFO, INLINE, IPL, ISOBRL, ISOBRL6, JNG, JNX, JPE, JPEG, JPG, JPS, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAGICK, MAP, MASK, MAT, MATTE, MEF, MIFF, MKV, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MSVG, MTV, MVG, NEF, NRW, NULL, ORF, OTB, OTF, PAL, PALM, PAM, PANGO, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PES, PFA, PFB, PFM, PGM, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG00, PNG24, PNG32, PNG48, PNG64, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSB, PSD, PTIF, PWP, RADIAL-GRADIENT, RAF, RAS, RAW, RGB, RGBA, RGBO, RGF, RLA, RLE, RMF, RW2, SCR, SCT, SFW, SGI, SHTML, SIX, SIXEL, SPARSE-COLOR, SR2, SRF, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UBRL6, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WEBP, WMV, WPG, X3F, XBM, XC, XCF, XPM, XPS, XV, YCbCr, YCbCrA, YUV

Directive => Local Value => Master Value
imagick.locale_fix => 0 => 0
imagick.skip_version_check => 0 => 0
imagick.progress_monitor => 0 => 0
Segmentation fault
Exit Code: 139

version from PECL has same issue

@tixastronauta
Copy link

Any hint on installing on CentOS/Amazon Linux?

@roza2404
Copy link

After executing these commands following error is occurred and i am using ubuntu16.04 please help me thank you! please help me

/home/desktop/download/imagick-phpseven/imagick_helpers.c: In function ‘php_imagick_progress_monitor_callable’:
/home/desktop/download/imagick-phpseven/imagick_helpers.c:96:5: error: ‘zend_fcall_info {aka struct _zend_fcall_info}’ has no member named ‘function_table’
fci.function_table = EG(function_table);
^
/home/desktop/download/imagick-phpseven/imagick_helpers.c:111:5: error: ‘zend_fcall_info {aka struct _zend_fcall_info}’ has no member named ‘symbol_table’
fci.symbol_table = NULL;
^
Makefile:204: recipe for target 'imagick_helpers.lo' failed
make: *** [imagick_helpers.lo] Error 1

@oimtrust
Copy link

Please, how to install on Mac OS?

@Delivator
Copy link

Typo in https://gist.github.com/nivv/5d9a12af5472b91606e6#install-dependencies
Second last command you wrote sudp :)

@pherrymason
Copy link

@pierrototo
Copy link

Hi !

You should replace your :
wget https://github.com/mkoppanen/imagick/archive/phpseven.zip
by :
pecl install imagick-beta

It normally solved the issue.

Best regards,

@eplt
Copy link

eplt commented Jun 24, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment