ブログ カレンダー

« « 2017 9月 » »
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリ一覧

アーカイブ

最新のエントリ

最新のコメント

最新のトラックバック

趣味のブログ - coreserver で Imagick を使う方法

coreserver で Imagick を使う方法

カテゴリ : 
internet
執筆 : 
OhYeah! 2015.01.08 01:29
 PHP で画像処理するのにとっても便利な Imagick クラスだが、このサイトを運用しているレンタルサーバである coreserver では、残念ながら標準で利用できるようにはなっていない。2014年6月までは、携帯農薬検索実験室の旧掲示板に書いた方法で利用できたが、7月に行われた Apache/PHP のバージョンアップの際に CGI 版 PHP の仕様変更があり、利用できなくなった。
 このため、現在の coreserver で Imagick を使う方法を改めて認めておくことにする。XREA も2014年12月に同様のバージョンアップが行われているので、coreserver と同じ方法で使えると思われる。
 以前の coreserver ではインストールされている ImageMagick が古く、まずは ImageMagick のインストールが必要だった。が、Apache/PHP のバージョンアップの際に MySQL 等もバージョンアップされたので、もしかすると ImageMagick も更新されたかもということで、下記の PHP スクリプトで確認してみた。結果は 6.8.7-0 で、2014年7月時点での最新バージョンではないものの、比較的新しいのでそのまま使うことにする。
<?php
$binpath = '/usr/local/bin/';
system("{$binpath}convert -version");
?>

 次に、PHP で ImageMagick を使うための PECL Imagick 拡張モジュールだが、下記の PHP スクリプトで標準 extension_dir の各エントリを確認したら、なんと imagick.so がちゃんと入ってるじゃないか! にもかかわらず、phpinfo() で確認しても Imagick クラスは有効になっていない…。でも、imagick.so をインストールする必要はなさそうなので、あとは imagick.so をロードする方法が分かれば Imagick が使えそうだ…。
<?php
header('Content-type: text/plain');
$extpath = '/usr/local/lib/php/extensions/';
if ($handle = opendir($extpath)) {
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      echo "$entry\n";
    }
  }
  closedir($handle);
}
?>

 てなわけで、coreserver のよくある質問 Q12 を見ながらいろいろ試して、次のことが分かった。
1. imagick.so が coreserver の標準 PHP である 5.3 用に configure & compile されているようで、5.3 以外では imagick.so をロードできない
2. FastCGI 版 PHP では Apache モジュール版 PHP と同様に拡張モジュールをロードできないので、CGI 版 PHP5.3 を起動する必要がある
3. CGI 版 PHP の拡張モジュールのロードは、/public_html/.fast-cgi-bin/php.ini に記述する必要がある

∴現在の coreserver では、次の2点で Imagick が使えるようになる。ちなみに、Imagick のバージョンは最新安定版である 3.1.2 であった。
1. Imagick クラスを呼び出す PHP スクリプトを置いたディレクトリに、下記の内容の .htaccess ファイルを置く
AddHandler application/x-httpd-phpcgi .php
2. /public_html/.fast-cgi-bin/php.ini に次の行を追加する
extension = imagick.so

トラックバック

トラックバックpingアドレス http://www.o-ya.net/modules/d3blog/tb.php/62

コメント一覧