環境 Windows10 Apache 2.2,2.4 PHP5.3,5.5,7.4
PHPで画像を操作したい時に利用するImageMagickですが毎回Windows上で環境を作成するのに手間取ってます。Web上で調べながらインストールするのですが、はまるポイントがあるので検証してまとめました。ちなみに混乱しがちですが、ImageMagickが本体の名前でそれをPHPから利用するためのエクステンションの名前がImagickです。
前提
webサーバー(ここではapache)とPHPの設定までは終わっており、phpinfo();で情報が確認できている状態になっているものとします。
必要なファイルは2つ
ImageMagickはその本体が含まれているZIPファイルとPHPから利用するために必要なエクステンション(php_imagick.dll)が含まれたZIPファイルの2つが必要になります。
一つ目のポイントですが、ImageMagickはその本家のサイト
https://imagemagick.org/script/index.php
があるのでここからダウンロードしたくなりますが、こちらではなくPHPのPECLを利用しましょう。(本家のサイトは間違えないようにクリックしてリンク先に飛ぶようにはしていません)
組み合わせが大切
やっかいなポイントとして、インストールしたPHPの以下の情報に合致した上記の2つのZIPファイルを選択しなければなりません。サンプルの画像ですと、
・PHPのバージョン(→5.3)
・実行ファイルを作ったコンパイラ(→VC9)
・PHPのアーキテクチャ(32bit→x86 or 64bit→x64)★Windowsのアーキテクチャではありません
・スレッドセーフか否か(IISはノンスレッドセーフ→nts or apache nginxはスレッドセーフ→ts)
これらはおなじみのphpinfo();を実行すると確認できます。

だんだん面倒になってきましたね。
という事で、簡単に環境の確認とそれに該当するImagickとImageMagickのZIPファイルのリンクが表示されるスクリプトを用意しました。
リンク先のphpファイルをダウンロードして適当なフォルダに解凍して動かしてください。
上記のPHPファイルを起動すると以下の内容が表示されます。

設置方法
ここらへんはいろいろなサイトにかかれているとおり、どこか適当なフォルダに展開して、
Imagickに入っているphp_imagick.dllをphp.iniに指定されているextにコピーしそれ以外のdll一式をImageMagickのbin配下に上書きコピーしてあげます。展開する先ははっきりいってどこでもよいです。(Program filesでもApache配下のbinで)
最終的にImageMagickのbinのパスがわかれば動きます。
php.iniの修正
php.iniの拡張設定にphp_imagick.dllを追加
PHP7.2以上 extension=imagick
上記未満 extension=php_imagick.dll
環境変数の設定
システム環境変数PathにImageMagickのbinを追加
後MAGIC_HOMEの指定が書かれているサイトもありますが、指定しないでも動きます。
Windowsの再起動
ここポイントの2つ目です。
Windows10ではシステム環境変数は変更すれば通常即反映されます。ですのでApacheを再起動(タスクマネージャーのサービス管理ツールやapachectlで)すれば反映されるように思いますが実はそれでは更新されません。
これはApache(webサーバ)が別のSYSTEMという特別なユーザで起動されるためです。ですので反映するためにはWindowsの再起動が必須となります。
コメント