PECLからのインストール
ImageMagick(PECLからインストールするのはインターフェースであるImagck)はCで書かれているのでPECLからインストールします。(自分でコンパイルすることもできますが)そのためにPECLコマンドが使える必要があります。拙著の記事を参照してください。
依存パッケージのインストール
結構いろんなパッケージが必要なようで、エラーでまくりました。debian/ubuntuとCentOSで必要なパッケージは以下です。(抜けていたらごめんなさい)
debian/ubuntu
debian/ubuntuだと以下のパッケージが必要になると思います。(分けて書きましたがいっぺんにインストールして構いません)
GNU コンパイラコレクション
$ sudo apt-get install gcc
ライブラリ共通インターフェース
$ sudo apt-get install pkg-config
Magick-Wand(ImageMagick C用のAPI)
$ sudo apt-get install libmagickwand-dev
CentOSの場合
CentOSだと以下のパッケージが必要になるようです。(分けて書きましたがいっぺんにインストールして構いません)
GNU コンパイラコレクション
$ sudo yum install gcc
PHPデベロッパツール
$ sudo yum install php-devel
ライブラリ共通インターフェース
$ sudo yum install pkgconfig
ImageMagickのAPIなど
$ sudo yum install ImageMagick ImageMagick-devel ImageMagick-perl
Imagickのインストール
エクステンションであるImagick
をPECL
コマンドからインストールします。
$ sudo pecl install imagick
エクステンションの設定
ImageMagickのインストールが成功すると以下のような出力(抜粋)があります。最後の行にあるようにphp.ini
へextension=imagick.so
を追加します。
Build process completed successfully
Installing '/usr/lib/php5/20131226/imagick.so'
Installing '/usr/include/php5/ext/imagick/php_imagick_shared.h'
install ok: channel://pecl.php.net/imagick-3.4.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=imagick.so" to php.ini
お使いのエディタでphp.iniを開いて付け加えてください。
$ sudo vim php ini
extension=imagick.so
これでImageMagickが使えるようになるはずです。アパッチモジュールとしてPHPを使っている場合はhttpdの再起動をしてください。CLIではそのまま使えるはずです。
phpinfoの確認
必要であればphpinfo()
で情報出力して確認してださい。ImageMagick
が有効になっているとimagick module => enabled
と出力されるはずです。
$ vim phpinfo.php
<?php
phpinfo();
以下はコマンドラインでphpinfo()を出力した結果(抜粋)です。
$php phpinfo.php
imagick
imagick module => enabled
imagick module version => 3.4.1
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
Imagick compiled with ImageMagick version => ImageMagick 6.8.9-9 Q16 x86_64 2015-01-05 http://www.imagemagick.org
Imagick using ImageMagick library version => ImageMagick 6.8.9-9 Q16 x86_64 2015-01-05 http://www.imagemagick.org
ImageMagick copyright => Copyright (C) 1999-2014 ImageMagick Studio LLC
ImageMagick release date => 2015-01-05
ImageMagick number of supported formats: => 215
ImageMagick supported formats => 3FR, AAI, AI, ART, ARW, AVI, AVS, BGR, BGRA, BIE, BMP, BMP2, BMP3, BRF, CAL, CALS, CANVAS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DFONT, DJVU, DNG, DOT, DPX, DXT1, DXT5, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, EXR, FAX, FITS, FRACTAL, FTS, G3, GIF, GIF87, GRADIENT, GRAY, GROUP4, GV, HALD, HDR, HISTOGRAM, HRZ, HTM, HTML, ICB, ICO, ICON, INFO, INLINE, IPL, ISOBRL, JBG, JBIG, JNG, JNX, JPEG, JPG, JSON, K25, KDC, LABEL, M2V, M4V, MAC, MAP, MASK, MAT, MATTE, MEF, MIFF, 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, UIL, UYVY, VDA, VICAR, VID, VIFF, VIPS, VST, WBMP, WMF, WMV, WMZ, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, YCbCr, YCbCrA, YUV
Directive => Local Value => Master Value
imagick.locale_fix => 0 => 0
imagick.progress_monitor => 0 => 0
imagick.skip_version_check => 0 => 0
というか画像フォーマットってこんなにあるんですね…。拡張子の大半知らんぞ…。
補足・ハマったポイント
@MINOが作業時に出したエラーを載せておきます。インストール結構何回もやり直しました…。トラブル時の参考にどうぞ。
gccが無い場合のエラー
CentOS7って最初からgcc入っていないみたいですね。エラーでました。
checking for cc... no
checking for gcc... no
configure: error: in `/var/tmp/pear-build-rootE9NsU2/imagick-3.4.1':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
ERROR: `/var/tmp/imagick/configure --with-imagick' failed
pkg-configが無い場合のエラー
こんなエラーがでてインストールが中止になるかもしれません。ライブラリを利用する際に共通インターフェースを提供するpkg-configがなかったために中断されたときの出力です。(例はdebian/ubuntuででたエラーです)
checking for pkg-config... no pkg-config not found configure: error: Please reinstall the pkg-config distribution ERROR: `/tmp/pear/temp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick' failed
magickwand-configがない場合のエラー
Magickwand-configが無いとこんなエラーがでてインストールが中止になります。(debian/ubuntuでlibmagickwand-devがない場合です)
checking ImageMagick MagickWand API configuration program...
checking Testing /usr/local/bin/MagickWand-config...
Doesn't exist checking Testing /usr/bin/MagickWand-config...
Doesn't exist checking Testing /usr/sbin/bin/MagickWand-config...
Doesn't exist checking Testing /opt/bin/MagickWand-config...
Doesn't exist checking Testing /opt/local/bin/MagickWand-config...
Doesn't exist configure: error: not found.
Please provide a path to MagickWand-config or Wand-config program. ERROR: `/tmp/pear/temp/imagick/configure --with-php-config=/usr/bin/php-config --with-imagick' failed
まとめ
PECLコマンドのインストール
依存パッケージのインストール
debian/ubuntu
- gcc
- php-dev
- pkg-config
- libmagickwand-dev
CentOS
- gcc
- php-devel
- pkgconfig
- ImageMagick
- ImageMagick-devel
- ImageMagick-perl
PECLからimagick
をインストール
インストール後、php.ini
にextension=imagick.so
を追記