# Class 'Imagick' not found Error

imagick とは

ImageMagick は GIF JPEG PNG PDF など 100 種類以上の画像フォーマット対応している画像処理モジュールです。

よく使われる imagick の画像編集機能

  • 画像読み込み
  • 画像に枠線引く
  • 画像透明度操作
  • 画像回転
  • 画像にウォーターマーク追加
  • サムネイル生成

PHP Imagick (opens new window)

イメージ操作でローカルで動くものが開発サーバーに上げたら imagick エラーで動かなくなりました。

 ERROR: Severity: error --> Exception: Class 'Imagick' not found /container-directory/xxxxxxx/xxx/models/Image_model.php 161 arguments is ["xxxxxx\/xxxxx"]
yum install ImageMagick ImageMagick-devel gcc
sh-4.2# convert -version
Version: ImageMagick 6.9.10-68 Q16 x86_64 2021-10-14 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(3.1)
Delegates (built-in): bzlib cairo fontconfig freetype gslib jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps rsvg tiff wmf x xml zlib

これでいけると思いましたが、残念ながらエラー解消できません。

# imagick モジュール入ってるか確認

php -m | grep imagick
# imagick

imagick が出力されたら imagick モジュールが読み込まれていることです。

php.ini 設定ファイル編集で imagick ソケット追加

extension = imagick.so

# imagick モジュールをインストール

そもそも imagick はデフォルトに入ってないので、最初は手動でインストールする必要があります。

# CentOS の場合、pecl install

pecl コマンドで imagick インストールと勧められたので、pecl をインストールします。

yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-libs-7.0.10-29.x86_64.rpm
yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-7.0.10-29.x86_64.rpm
yum install https://imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-devel-7.0.10-29.x86_64.rpm
pecl install imagick

pecl がうまく行かないとき!

wget https://pecl.php.net/get/imagick-3.4.4.tgz

gunzip imagick-3.4.4.tgz

tar -xvf imagick-3.4.4.tar

cd imagick-3.4.4

zts-phpize

./configure --with-php-config=/usr/bin/zts-php-config

make

sudo make install

php.d の imagick.ini 設定

/etc/php.d/20-imagick.ini

extension=imagick

入っているかどうか確認

php -m | grep imagick

参考:ZTS 版の PHP に PECL 拡張モジュールをインストールする (opens new window)

# PHP 5 で imagick エラーになった

stack overflow は神的な存在で困った時に助けてくれます。
Fatal error: Class 'imagick' not found (opens new window)

sudo apt-get remove --purge php5-imagick && sudo apt-get install php5-imagick

# AWS EC2 で php imagick インストールする方法

AWS EC2 で正常にライブラリを読めない場合があるようですが、下記のコマンドでインストール

yum install php-pecl-imagick

# Docker compose docker-php-ext-enable imagick

dockerfile 使ってコンテナ作成する場合

RUN apt-get update \
&& apt-get install -y zlib1g-dev libpq-dev unzip libzip-dev imagemagick libmagickwand-dev

RUN docker-php-ext-install pdo_mysql mysqli zip \
&& pecl install imagick \
&& docker-php-ext-enable imagick
2021-11-04

同じタグを持つ記事をピックアップしました。