XAMPP に ImageMagick をインストールする方法
この記事は古い内容です。同じ内容の改訂版の記事があります。
「XAMPP に ImageMagick をインストールする方法【2023年改訂版】」
XAMPP に ImageMagick をインストールする方法がかなりわかりづらく混乱してしまったので、ここにインストール方法を記載しておきます。 自分への備忘録です。ImageMagick は脆弱性が多いようなので注意。
PHP から ImageMagick を使用するには
PHP から ImageMagick を使用するには2つのものが必要です。
1つ目は、コマンドラインツールである ImageMagick 本体。
2つ目は、PHP の拡張(エクステンション)である imagick です。
imagick は PHP から ImageMagick を呼び出すための橋渡し(Wrapper)の役割なのですが、本体と橋渡しの2つに分かれていることで問題が発生します。 それは、最新の ImageMagick のバージョン(例:7.1.0-13)と、imagick が想定している ImageMagick(例:7.0.7-11)のバージョンが異なっているということです。 imagick が想定している ImageMagick のバージョンは少し古いバージョンなのです。
バージョンが異なっていても動作はするようですが、安定性の問題が発生することがわかっているため、非推奨となっておりサポートされていません。 そのため、imagick の想定するバージョンと一致する古いバージョンの ImageMagick を使用する必要があります。
Windows に ImageMagick をインストールする
古い ImageMagick をインストールする方法
まずは正攻法である、ImageMagick と imagick のバージョンをちゃんと合わせる方法です。 imagick が想定する古いバージョンの ImageMagick は、https://windows.php.net/downloads/pecl/deps/ からダウンロードできます。 pecl に依存するものをちゃんと保持してくれているんですね。ありがたい。 ちなみにこのファイル名の "7.0.7-11" というのは ImageMagick のバージョン番号であり、PHP のバージョン番号ではないので注意。
ダウンロードしたら解凍してどこか邪魔にならないディレクトリへ移動させます(例:"C:\Program Files\ImageMagick-7.0.7-11-vc15-x64")。 場所はわかればどこでも良いです(PATHを通すので)。これが ImageMagick 本体です。
次に、その ImageMagick の "bin" ディレクトリへPATHを通し、コマンドラインから使えるようにします。 環境変数は「設定>システム>詳細情報>システムの詳細設定>環境変数」から変更できます。 環境変数のPATHに ImageMagick の "bin" ディレクトリのパスを追加します(例:"C:\Program Files\ImageMagick-7.0.7-11-vc15-x64\bin")。
最新の ImageMagick をインストールする方法
開発環境だから ImageMagick と imagick の多少のバージョン違いなんて気にしないぜ!安定性なんてお構いなし!という場合は、最新の ImageMagick を使うのも良いでしょう。 最新の ImageMagick を使った方がインストールが簡単です。 インストーラーが全部やってくれます。
公式サイトのダウンロードページから Windows 用のインストーラーをダウンロードし、インストールします。
インストーラー(.exe)に従ってインストールすれば特に迷うこともないかと思いますが、 オプションを選択する際に、「Add application directory to your system path」のチェックは必ずつけてください。 これは環境変数のPATHに ImageMagick の "bin" ディレクトリを追加するオプションです。 これを選択しておかないと PHP から使用できないので注意してください。
インストールできたか確認する
ImageMagick をインストールすると、magick
コマンドが使えるようになっていますので、使用できるか確認してみましょう。
ちゃんとPATHが通っていれば使えるはずです。
環境変数のPATHの設定をちゃんと反映されていない場合は Windows を再起動してみましょう。
magick -version
Version: ImageMagick 7.0.7-11 Q16 x64 2017-11-23 http://www.imagemagick.org Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC License: http://www.imagemagick.org/script/license.php Visual C++: 191125547 Features: Cipher DPC HDRI Modules OpenMP Delegates (built-in): bzlib cairo flif freetype jng jp2 jpeg lcms lqr openexr pangocairo png ps raw rsvg tiff webp xml zlib
PHP に imagick をインストールする
ImageMagick 本体のインストールが完了したら、次は imagick です。 PHP から ImageMagick を使用するには PHP の拡張(エクステンション)である imagick が必要です。 imagick は PHP から ImageMagick を呼び出すための橋渡し(Wrapper)の役割になります。 本体はあくまで、上記でインストールした ImageMagick になります。
https://pecl.php.net/package/imagickimagick をインストール
imagick は PHP の拡張(エクステンション)なので、DLL ファイルです。
ダウンロードする DLL ファイルは、インストールする環境の PHP によって異なりますので、環境に合わせて選択してください。
phpinfo()
で確認しましょう。「Architecture」欄や「PHP Extension Build」欄を見れば、どの DLL ファイルをダウンロードすれば良いかわかると思います。
https://pecl.php.net/package/imagick
ダウンロードしたら解凍して、その中にある "php_imagick.dll" ファイルを、XAMPP の PHP の ext ディレクトリ(C:/xampp/php/ext)に持っていきます。
次に、先ほど ext ディレクトリに追加した "php_imagick.dll" ファイルを PHP が読み込むように php.ini ファイル(C:/xampp/php/php.ini) に追記し、Apache を再起動します。
extension=imagick
インストールできたか確認する
phpinfo()
を表示し、imagick の項目が表示されていればインストール完了です。
ImageMagick 本体と imagick の両方のインストールが完了していなければ表示されないので注意してください。
「Imagick compiled with ImageMagick version」の欄が imagick の想定している ImageMagick のバージョンで、 「Imagick using ImageMagick library version」の欄が現在インストールされている ImageMagick のバージョンです。 この2つが一致しているか確認しましょう。
開発環境でバージョン合わせるのなんてめんどくせー!安定性なんて無視だぜ!って人は一致してなくても良いです。 違ってても動作はするようです。
PHP から使用する
Imagick クラスが、PHP の組み込みのクラスとして使用できるようになってます。
<?php $imagick = new Imagick(__DIR__ . '/image.jpg'); $imagick->thumbnailImage(100, 0); header('Content-type: image/jpeg'); echo $imagick;
参考サイト
- ImageMagick – Convert, Edit, or Compose Digital Images
- GitHub - Imagick/imagick: 🌈 The Imagick PHP extension 🌈
- Windows10 + XAMPP 環境でImageMagickを使用する – Ewig Leere(Lab2)
- XAMPPにImageMagickをインストールする【imagic】 | BONZ-NET | WordPress
- さようなら ImageMagick - Cybozu Inside Out | サイボウズエンジニアのブログ
- 「さようなら ImageMagick」の考察 - Qiita