🪄

Windows版PHPにimagick拡張を導入する (Laravel Herd)

に公開

はじめに

imagickの導入方法をよく忘れてしまうので忘備録として残しておきます。

この記事ではLaravel Herdを使用していますが、XAMPP/Laragon/手動インストール等でも問題ありません。

導入方法

1. imagick拡張のダウンロード

PECL(PHPの拡張パッケージを提供しているサービス)から、imagickのページに移動します。
ここで、ダウンロードしたいバージョンの行にある🪟DLLをクリックします。
今回は3.8.0をダウンロードします。

PECL imagickのダウンロードページ


そしたら、PHPのバージョン・ビルド構成の選択画面に来ますので合うものを選びます。
HerdはデフォルトでNTSをダウンロードしてくれるのでNTSx64を選択します。

PECL PHPのバージョン/ビルド構成選択画面

2. imagick拡張の導入

  1. PECLからダウンロードしたものを解凍します。

  2. 新しくエクスプローラーを開いて、PHPのインストールパス(php.exeのあるフォルダ)まで行きます。
    (Herdの場合C:\Users\USERNAME\.config\herd\bin\php84等)

  3. 解凍したフォルダ内のphp_imagick.dllをPHPインストールパス内にある<PHPインストールパス>/extフォルダ内に入れます。

  4. 解凍したフォルダ内のCORE_RL_*.dll, IM_MOD_RL_*.dll, FILTER_analyze_.dllをすべて<PHPインストールパス>フォルダ内に入れます。

  5. <PHPインストールパス>/php.iniextension=imagickの記載を追加します。
    (950行目あたりにあるextension=拡張名が沢山書いてある場所だと分かりやすい)

  6. 最後に、HerdのサービスをStop all servicesStart all servicesし、PHP-FPMを再起動します。
    (phpコマンドの方はこれを実行しなくても即時反映されます)

おわり

最終的なフォルダ構成

Herdを使用している場合、最終的なフォルダ構成はこのようになります。

C:\Users\USERNAME\.config\herd\bin\php84
│  CORE_RL_*.dll          # 追加
│  FILTER_analyze_.dll    # 追加
│  IM_MOD_RL_*.dll        # 追加
│  php.exe
│  php.ini
│
├─dev
├─ext
│  php_gettext.dll
│  php_gmp.dll
│  php_imagick.dll        # 追加
│  php_intl.dll
│  php_ldap.dll
│
├─extras
└─lib

(一部省略)

Discussion