2011年2月15日火曜日

CentOS 5.5のImageMagickのバージョンを上げる

peclのimagickでgetImagePropertyを使おうと思ったら、なぜか
PHP Fatal error: Call to undefined method Imagick::getImageProperties()

マニュアルみたら、
PHP: Imagick::getImageProperty - Manual

ImageMagick version 6.3.2 or newer.

になってる。

で、CentOS5.5のImageMagickのバージョンを見てみると、
$ convert -v
Version: ImageMagick 6.2.8 08/28/09 Q16 file:/usr/share/ImageMagick-6.2.8/doc/index.html
Copyright: Copyright (C) 1999-2006 ImageMagick Studio LLC
で6.2.8だった。

バージョンを上げないとimagickのgetImagePropertyが使えないみたい。

ということで上げる。

uninstall old ImageMagick
$ sudo yum remove ImageMagick


get new ImageMagick sources
$ wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz

untar and configure, make, install
$ tar zxvf ImageMagick.tar.gz
$ cd ImageMagick-6.6.7-7
$ ./configure --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp
$ make
$ sudo make install
※configureのオプションに関しては↑を付けておいたほうがよさげ。
-->kasahi memo: ImageMagick(imagik)がsegmentation faultするようになってしまった。

チェック。
$ convert -v
Version: ImageMagick 6.6.7-7 2011-02-15 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
OK。


あとは、peclのimagickを元々使ってたので、一度削除して、再インストール

$ sudo pecl uninstall imagick

で、再インストール。
$ sudo pecl install imagick

これでOK。

そしてhttpdを再起動
$ sudo /etc/init.d/httpd restart

これで無事バージョンが上がって、関数も使えるようになりました。