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
|
| OS | Rocky 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