2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Eclipse Luna SR2 (4.4.2) 上のPHPでImageMagickを動かす

Last updated at Posted at 2016-03-30

初めに

3日かかった。GraphicsMagick合わせると、5日…
記録の為に記載するが、誤り等あれば指摘して下さい。

インストール環境

Windows 7 Professional SP1 64ビット + Eclipse Luna SR2 (4.4.2)。

必要な作業の概要

1. ImageMagickのインストール

ftp://sunsite.icm.edu.pl/packages/ImageMagick/binaries/
より
ImageMagick-6.7.9-0-Q16-windows-dll.exeインストール。
インストール先は、C:\ImageMagick。
オプションは、関連ファイルの紐付け以外の全て。

2. 環境変数の登録

自動的に追加される事もあるが、Pathの先頭にC:\ImageMagickを追加、
MAGICK_HOMEを新設し、C:\ImageMagick\modules\codersを指定した

3. Microsoft Visual C++ Redistributableのインストール

おそらくはMicrosoft Visual C++ 2008 x86 Redistributableだけあれば動くと思われる。

4. PECL imagickのインストール

https://pecl.php.net/package/imagick
から、
https://pecl.php.net/package/imagick/3.2.0b2/windows
へ行き、
php_imagick-3.2.0b2-5.4-ts-vc9-x86.zip
をダウンロード、展開して、
php_imagick.dllをC:\pleiades\xampp\php\extに、
CORE_RL_bzlib_.dll、CORE_RL_glib_.dll、CORE_RL_lcms_.dll、CORE_RL_lqr_.dll、CORE_RL_magick_.dll、CORE_RL_ttf_.dll、CORE_RL_wand_.dll、CORE_RL_zlib_.dllをC:\pleiades\xampp\phpに、コピーする。

5. php.iniへの記載

ファイルの最後に
[PECL]
extension=php_imagick.dll
記載。

6. OSごと再起動

上記の、おのおのの理由を、推測を混ぜて。

1. ImageMagickのインストール

バージョンの理由。

最新版だと動かない、の報告が各所に散見された。
バージョン選定に悩んだが、当方、開発をWindows、実稼働をLinuxで行おうと考えており、
CentOS6: ImageMagick-6.7.2.7-2.el6.x86_64
CentOS7: ImageMagick-6.7.8.9-10.el7.x86_64
の為、ImageMagick-6.7.9-0-Q16-windows-dll.exeを選んでいる。
もっと新しくても動くかもしれない。
また、Windowsは64bitなのだが、Eclipseは32bitの為、ImageMagickも32bitの必要がある。
さらに、Eclipse Luna SR2 (4.4.2)のPHPはスレッドセーフ版の為、ts版である必要がある。

ダウンロード元及びバージョンの理由。

ImageMagickのオリジナルサイトには、最新版しか無い。
探した末、オリジナルサイトのリンクにあったmirrorである
ftp://sunsite.icm.edu.pl/packages/ImageMagick/binaries/
よりダウンロードした。

インストール先の理由。

デフォルトでインストールすると、C:\Program Files (x86)にインストールしようとするが、
パスにスペースが入ると稼働しない模様。下記サイトに記載があった。
http://kyle-in-jp.blogspot.jp/2008/04/windowsimagemagickphp.html
しばし思案するに、PHPで扱いが微妙な文字は入れてはいけないのでは無いかと思いつき、念の為、ハイフンも削除した。

2. 環境変数の登録

GrapchicsMagickのインストールを先に行っていた事もあるが、どうもPHPでImageMagickを読み込む時にPathの先頭から読むらしく、GrapchicsMagickのdllを読み込んで誤作動していた模様。
安全の為、Pathの先頭に書くかと。
MAGICK_HOMEは正直よくわからない。
また、dllの設置によっては、パスの設定は不要…かもしれない。

3. Microsoft Visual C++ Redistributableのインストール

試行錯誤中に、いろいろ入っており、他にも必要かも知れない。
Microsoft Visual C++ 2005 Redistributable
Microsoft Visual C++ 2005 Redistributable (x64)
Microsoft Visual C++ 2008 x64 Redistributable
Microsoft Visual C++ 2008 x86 Redistributable
Microsoft Visual C++ 2010 x64 Redistributable
Microsoft Visual C++ 2010 x86 Redistributable

4. PECL imagickのインストール

http://stackoverflow.com/questions/20976779/how-to-install-imagemagick-to-use-with-php-on-windows-7-3
の動作報告を眺めていて、
http://www.peewit.fr/imagick/
を見た所、下記に気づいた(遅いって)。
Imagick 3.3.0RC2/PHP 7.0 (7.0.0RC5)/MSVC14 (Visual C++ 2015)/x64
Imagick 3.2.0RC1/PHP 5.6/MSVC11 (Visual C++ 2012)/x86
Imagick 3.2.0RC1/PHP 5.5/MSVC11 (Visual C++ 2012)/x86
Imagick 3.2.0RC1/PHP 5.4/MSVC9 (Visual C++ 2008)/x86
つまり、VC9版のPHPを導入していて、バージョンが5.4な、当方の環境の場合、3.2.0を入れる必要があると。
https://pecl.php.net/package/imagick
で対応を眺めた所、dllがあって、3.2.0RC1以下でDLLがあったのが3.2.0b2、という訳だ。

なお、http://www.peewit.fr/imagick/に従うなら、下記の構成が鉄板かと。
Imagick 3.2.0RC1/PHP 5.6/MSVC11 (Visual C++ 2012)/x86
Tested under Windows 7 Ultimate Edition x64 SP1 with:
Nginx 1.7.7 (Win32 x86 with openssl 1.0.1j)
PHP 5.6.4 VC11 x86 Thread Safe (Dec 17 2014 13:21:16)
ImageMagick 6.8.6-8 Win32 at 16 bits-per-pixel (2013-08-01)

5. php.iniへの記載

http://www.kaasan.info/archives/272
に従ってみた。[PECL]必要かよくわかりません。

6. OSごと再起動

おそらく、OSの環境変数~PHPの起動で読み込まれるPathとMAGIC_HOMEが、OSの再起動により反映されるから、であり、
いわばおまじない、であり、
もしかすると各種dllをパスの通ったフォルダに入れてあれば不要かも…しれない。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?