2011年03月10日

PHP + ImageMagick インストール記録

PHPの環境にImageMagickを入れてテストをしようと思ったのですが、インストールに非常に苦労したので事前に手順を公開しておきます。

導入環境
* OS Windows XP Media Center Edition Ver.2002 SP3
* Apache/2.2.14 (Win32)
です。余談ですがMedia Center Editionなのに特に理由はありません(笑)。
なおApacheのインストールに関しては、さまざまなサイトがあるのでそちらを参照してください。
また、次に紹介するPHPのインストールの参考にしているサイトにもapacheインストール方法の記述がありますので参考にどうぞ。



まず、PHPのインストールを行います。
以下のサイトを参考に php-5.3.5-Win32-VC6-x86.zip をインストールします。
http://www.standpower.com/php_environment2.html

さらに、別件の為にphp.iniの設定に追加を行いました。

extensionの有効化

;extension=php_gd2.dll

extension=php_gd2.dll

;extension=php_mbstring.dll

extension=php_mbstring.dll

;extension=php_exif.dll ; Must be after mbstring as it depends on it

extension=php_exif.dll ; Must be after mbstring as it depends on it

タイムゾーンの設定

;date.timezone =

date.timezone = "Asia/Tokyo"


そしてapacheの再起動。
この段階で http://localhost/info.php にアクセスしてきちんと動作することを確認しておいてください。


目標であるImageMagickインストールに入ります。
以下のサイトを参考にしますが、いろいろ変更があります。
http://kyle-in-jp.blogspot.com/2008/04/windowsimagemagickphp.html
【】付きで書いてある番号は上記サイトの番号に対応させてあります。

【1.】のImageMagickのインストールです。
まず、 ImageMagick-6.6.8-1-Q16-windows-dll.exe を以下から取得します。
http://www.imagemagick.org/script/binary-releases.php?ImageMagick=qa8kehgo3k4hu158g1p0u9sc51#windows
インストーラの設定はインストールディレクトリ設定以外は全てデフォルトです。
以下のように設定しました。

C:\Program Files\ImageMagick-6.6.8-Q16

C:\ImageMagick-6.6.8-Q16


【2.】Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ (x86)のインストールですが、下の方に

2009/05/04追記
「Microsoft Visual C++ 2005 SP1 再頒布可能パッケージ」は「Microsoft Visual C++ 2008 Redistributable」でも動作する。
動作環境
Microsoft Windows 2003 Server SP2, Apache2.2.11, PHP5.2.9-2, ImageMagick6.5.2-0

とあり、既に2008がインストールされていたので行いませんでした。
ちなみにここにあります。
http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=ja
さらに2010バージョンもありますが、試していません。
http://www.microsoft.com/downloads/details.aspx?familyid=A7B7A05E-6DE6-4D3A-A423-37BF0912DB84&displaylang=ja

【3.】php_imagickのインストールですが、一番ハマった所です。
Mikko's blog には既にVC9版しかなく、VC6版がありません。
上記でPHPはVC6版を入れましたので、VC6版のDLLを得る必要があります。
このままPHP VC6 + DLL VC9で試してみましたが起動時にチェッカでエラーになりました。
もうひとつのパターンとしてPHPをVC9版にする、という手があり、試してみた所info.phpは正常動作しました。
ただし、VC6とVC9の差をよくわかってない自分が悪いのですが、IISにはVC9版、apacheにはVC6版を使うのが一般らしく不要なトラブルを防ぐためにもPHP VC6版を利用したい所でした。
ちなみに、VC9版ですがinfo.phpは動作したのですがテストコードを動かすとapacheごと落ちるという現象が出て、原因追及する前にVC9版の利用を諦めた、というのが実際の所です。

長々と書きましたが、方法としては記述のとおりなのですが使うDLLを以下のものにしました。
http://marijuana.xsrv.jp/modules/wordpress/?p=443
ページの下の方に『php_imagickはこちら』というリンクがあります。こちらをたどった先にあるphp_imagicをダウンロードしてください。
すると『php_imagic301-1.7z』というファイルが得られると思います。これは7z形式という、ちょっと珍しい圧縮形式なのでなんとかして伸長してください(笑)。私はlhazで伸長しました。
中には3つのDLLがありますので、【3.】のphp_imagick_dyn-Q16.dllの代わりに『php_imagick53-VC6.dll』を使います。php_imagick53-VC6.dllをC:\php\extディレクトリにコピーします。

【4.】php.iniに以下の設定を追加ですが、この手順のままだと以下のみを追加すればいいです。ちなみに追加場所はどこでもいいです。

extension=php_imagick53-VC6.dll


【5.】OSのシステム環境変数の設定です。設定方法はどこでも参考にしてください。
『MAGICK_HOME』に『C:\ImageMagick-6.6.8-Q16』を設定します。
なおユーザー環境変数とシステム環境変数の違いがわからないのであれば、システム環境変数にセットしておいた方が無難です。セキュリティポリシー等でセットできなければユーザー環境変数でも問題ないと思います。

【6.】で、Windowsの再起動です。どうして必要なのかわかりませんが、まぁやっておきましょう。

これで終了になります。

【7.】のテストコードをコピーし、2つの画像ファイルも同じディレクトリに入れると…動作すれば成功ですが、ファイルのパスをフルパスで指定しないと動作しませんでした。原因はわかりません。でもそれで動くので
お疲れさまでした。
少なくとも、私は疲れましたwww
posted by ちや at 12:49| Comment(0) | TrackBack(0) | PC | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。