purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20100525 PHP compiled with module API=20121212 というエラーの対処法

こんな感じの方法でPHPを複数バージョンで利用してるのですが 64bitCentOS6.2にsuPHPで複数バージョンのPHPを入れた際ハマったこと | ハサミできって貼ってみた

なんかImageMagickPHPから使うためのモジュールで「imagick」というものがあって、それを入れて、要はphpinfoにこうやって出てくるようにしてくれといわれました。 imagick

で、色々がんばって入れてみるんですけど、なんか色々調べてインストールしてみてphp.iniに

extension=imagick.so

を追加してphpinfoを見たらページの最後の方に

PHP Warning: PHP Startup: imagick: Unable to initialize module Module compiled with module API=20100525 PHP compiled with module API=20121212

と書いてある

これはどうも、「PHP5.5系 → API=20121212」でうごかしてるけどimagickが「PHP5.4系 → API=20100525」だと言っている感じ

要するにこうして解決した

# 各バージョン用のimagickモジュール マイナーバージョンごとに1つあれば良い

mkdir /usr/local/src/php5.4
cd /usr/local/src/php5.4
git clone -b phpseven --depth 1 https://github.com/mkoppanen/imagick
cd /usr/local/src/php5.4/imagick
./configure --with-php-config=/usr/local/bin/php-config-5.4.39
make
make install

mkdir /usr/local/src/php5.5
cd /usr/local/src/php5.5
git clone -b phpseven --depth 1 https://github.com/mkoppanen/imagick
cd /usr/local/src/php5.5/imagick
/usr/local/bin/phpize-5.5.23
./configure --with-php-config=/usr/local/bin/php-config-5.5.23
make
make install

mkdir /usr/local/src/php5.6
cd /usr/local/src/php5.6
git clone -b phpseven --depth 1 https://github.com/mkoppanen/imagick
cd /usr/local/src/php5.6/imagick
/usr/local/bin/phpize-5.6.7
./configure --with-php-config=/usr/local/bin/php-config-5.6.7
make
make install

解説

  • 各バージョンごとのソース置き場を作り
  • git cloneでソースをDL
  • それぞれのversionのphpizeを実行して
  • インストール