ImageMagickをインストールする。
yumからのインストールでは取得可能なバージョンが古い為、rpmパッケージからインストールを試ます。
[root@centos5 ~]# wget http://www.imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-6.8.7-7.x86_64.rpm
[root@centos5 ~]# mv ./ImageMagick-6.8.7-7.x86_64.rpm /usr/local/src/ImageMagick-6.8.7-7.x86_64.rpm
[root@centos5 ~]# rpm --install --test /usr/local/src/ImageMagick-6.8.7-7.x86_64.rpm
エラー: 依存性の欠如:
libHalf.so.4()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
libIex.so.4()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
libIlmImf.so.4()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
libImath.so.4()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
libjasper.so.1()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
liblqr-1.so.0()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
liblzma.so.0()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
libwebp.so.4()(64bit) は ImageMagick-6.8.7-7.x86_64 に必要とされています
多数の依存性エラーが吐かれた事によって心折れましたので、ソースからインストールをさせて頂きます。c(・ω・`c⌒っ
[root@centos5 ~]# wget http://www.imagemagick.org/download/ImageMagick.tar.gz
[root@centos5 ~]# mv ./ImageMagick.tar.gz /usr/local/src/
[root@centos5 ~]# cd /usr/local/src/
[root@centos5 src]# tar xfz ./ImageMagick.tar.gz
[root@centos5 src]# cd ImageMagick-6.8.7-7
[root@centos5 ImageMagick-6.8.7-7]# ./configure
[root@centos5 ImageMagick-6.8.7-7]# make
[root@centos5 ImageMagick-6.8.7-7]# make install
[root@centos5 ImageMagick-6.8.7-7]# convert -list format | egrep "GIF|JPEG|PNG"
see part 5 which describes the image encoding (RLE, JPEG, JPEG-LS),
and supplement 61 which adds JPEG-2000 encoding.
GIF* rw+ CompuServe graphics interchange format
GIF87* rw- CompuServe graphics interchange format (version 87a)
JNG* rw- JPEG Network Graphics
JPEG* rw- Joint Photographic Experts Group JFIF format (62)
PJPEG* rw- Joint Photographic Experts Group JFIF format (62)
PNG* rw- Portable Network Graphics (libpng 1.2.10)
See http://www.libpng.org/ for details about the PNG format.
PNG00* rw- PNG inheriting bit-depth and color-type from original
PNG24* rw- opaque or binary transparent 24-bit RGB (zlib 1.2.3)
PNG32* rw- opaque or transparent 32-bit RGBA
PNG48* rw- opaque or binary transparent 48-bit RGB
PNG64* rw- opaque or transparent 64-bit RGBA
PNG8* rw- 8-bit indexed with optional binary transparency
[root@centos5 ImageMagick-6.8.7-7]# convert -resize x100 -quality 80 /var/www/html/test.jpg /var/www/html/test.png
wgetコマンドを使用し、imagemagickの公式サイトから最新版のソースコード配布パッケージを取得します。
makeファイルを作成し、インストールを実行。
インストール後にconvertコマンドを実行し、対応フォーマットの確認を行っています。
最後の行では実際にconvertコマンドを実行し、画像のリサイズ試験を行っています。
- -resize
- (画像サイズ変更オプション)
- x100
- (横幅100px指定。この場合、縦幅は自動調整。 縦幅指定の場合は 100x などと指定可能)
- -quality
- (画像変換のクオリティ値。1-100を指定可能)
- 80
- (指定された変換クオリティ値)
phpのimagickをインストールする。
[root@centos5 ~]# /usr/bin/php -i | grep 'imagick' [root@centos5 ~]# pecl install 'imagick' downloading imagick-3.1.2.tgz ... Starting to download imagick-3.1.2.tgz (94,657 bytes) .....................done: 94,657 bytes ~中略~ /php/extensions/no-debug-non-zts-20090626/imagick.so Build process completed successfully Installing '/usr/local/include/php/ext/imagick/php_imagick.h' Installing '/usr/local/include/php/ext/imagick/php_imagick_shared.h' Installing '/usr/local/include/php/ext/imagick/php_imagick_defs.h' Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/imagick.so' install ok: channel://pecl.php.net/imagick-3.1.2 configuration option "php_ini" is not set to php.ini location You should add "extension=imagick.so" to php.ini [root@centos5 ~]# vi /etc/php.d/imagick.ini ← 作成 ; Enable imagick extension module extension=imagick.so [root@centos5 ~]# ln -s /usr/local/lib/php/extensions/no-debug-non-zts-20090626/imagick.so /usr/lib64/php/modules/imagick.so [root@centos5 ~]# /etc/init.d/httpd configtest Syntax OK [root@centos5 ~]# /etc/init.d/httpd reload httpd を再読み込み中: [ OK ] [root@centos5 ~]# /usr/bin/php -i | grep 'imagick' /etc/php.d/imagick.ini, imagick imagick module => enabled imagick module version => 3.1.2 imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator imagick.locale_fix => 0 => 0 imagick.progress_monitor => 0 => 0
imagickが未インストールであることを確認したら、peclコマンドにてimagickのインストールを実行します。
インストール完了のメッセージにて「You should add "extension=imagick.so" to php.ini」と表示されているので、それに従います。
この場合は、拡張の設定ディレクトリ/etc/php.d/内にファイル(imagick.ini)を作成し、そこに拡張モジュール読み込み記述を追記しました。
imagick.soへの参照パスが通っていない場合は必要に応じてリンクを張って下さい。
上記の例では ln -s /usr/local/lib/php/extensions/no-debug-non-zts-20090626/imagick.so /usr/lib64/php/modules/imagick.so
設定に問題が無いか確認し、apacheを再読み込みさせます。
最後に、phpにてimagickが有効になったかを確認して終了します。