PHPにimagick(PECL)をインストール / Rocky Linux9.7 on さくらのVPS

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

PHPからImageMagickを利用するためのPECL拡張「imagick」をインストールする作業の記録です。ImageMagick本体のインストールが済んでいる前提で、PHP拡張モジュールのビルドと設定を行います。

この記事の作業が終わると、PHPから Imagick クラスが使えるようになり、WordPressなどのCMSでもImageMagickが優先的に利用される状態になります。

なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。

特徴

  • ソースコードからのインストール
  • 複数バージョンの共存
  • PHPバージョンごとにビルドが必要

imagick.so はPHPバージョンごとに専用のビルドが必要です。
複数のPHPバージョンで使いたい場合は、それぞれのPHPに対して同じ手順を繰り返します。
変わるのは phpize と php-config のパスだけで、手順自体は同じです。

環境

実施日2026-04-07
サーバさくらのVPS 2G
OSRocky Linux9.7
cat /etc/redhat-release
Rocky Linux release 9.7 (Blue Onyx)

事前準備

imagickはImageMagick本体のライブラリを参照するため、事前にImageMagickをインストールしておく必要があります。

ImageMagick 7.1.2-18 をソースインストール / Rocky Linux9.7 on さくらのVPS

まだの場合は先にImageMagickをインストールしておきます。

imagickのダウンロード

PECLから入手します。

https://pecl.php.net/package/imagick

2026-04-07時点では「3.8.1」が最新の安定版ですのでこちらをインストールしていきます。

URLを控えておきます。

https://pecl.php.net/get/imagick-3.8.1.tgz

インストール

以下の例では PHP 8.3.30(mysqlnd)にインストールしています。
別のPHPバージョンに入れる場合は、PHP_VERSION と MYSQL_TITLE を変更してください。

設定

IMAGICK_VERSION=3.8.1
IMAGEMAGICK_VERSION=7.1.2-18
PHP_VERSION=8.3.30
MYSQL_TITLE=mysqlnd

ダウンロードと解凍

mkdir /usr/local/src/imagick-$IMAGICK_VERSION

cd /usr/local/src/imagick-$IMAGICK_VERSION

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

tar xzf imagick-$IMAGICK_VERSION.tgz

cd imagick-$IMAGICK_VERSION

phpize

ソースインストールしたPHPの場合、phpize にバージョン付きのサフィックスが付いています。

/usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/bin/phpize-$PHP_VERSION-mysqlc-$MYSQL_TITLE
Configuring for:
PHP Api Version:         20230831
Zend Module Api No:      20230831
Zend Extension Api No:   420230831

configure

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/ImageMagick-$IMAGEMAGICK_VERSION/lib/pkgconfig"

./configure \
    --with-imagick=/usr/local/lib/ImageMagick-$IMAGEMAGICK_VERSION \
    --with-php-config=/usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/bin/php-config-$PHP_VERSION-mysqlc-$MYSQL_TITLE

ビルドとインストール

make
make install
Installing shared extensions:     /usr/local/lib/php-8.3.30-mysqlc-mysqlnd/lib/php/20230831/

php.ini に追加

echo "extension=imagick.so" >> /usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/php.ini

動作確認

/usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/bin/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE -m | grep imagick
imagick

imagick が表示されればインストール完了です。

別のPHPバージョンにインストールする場合

ソースのダウンロードは済んでいるので、phpize からやり直します。
PHP_VERSION と MYSQL_TITLE を対象のPHPに合わせて変更してください。

たとえば PHP 8.2.27 にインストールする場合は次のようになります。

# 対象のバージョンを設定
IMAGICK_VERSION=3.8.1
IMAGEMAGICK_VERSION=7.1.2-18
PHP_VERSION=8.2.27
MYSQL_TITLE=mysqlnd

# imagickのソースディレクトリに移動
cd /usr/local/src/imagick-$IMAGICK_VERSION
cd imagick-$IMAGICK_VERSION

# 前回のビルド結果をクリーン
make clean

# phpize を実行
/usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/bin/phpize-$PHP_VERSION-mysqlc-$MYSQL_TITLE

# PKG_CONFIG_PATH を設定
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/ImageMagick-$IMAGEMAGICK_VERSION/lib/pkgconfig"

# configure を実行
./configure \
    --with-imagick=/usr/local/lib/ImageMagick-$IMAGEMAGICK_VERSION \
    --with-php-config=/usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/bin/php-config-$PHP_VERSION-mysqlc-$MYSQL_TITLE

# ビルド
make

# インストール
make install

# php.ini に追加
echo "extension=imagick.so" >> /usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/php.ini

# 動作確認
/usr/local/lib/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE/bin/php-$PHP_VERSION-mysqlc-$MYSQL_TITLE -m | grep imagick