趣味のブログ - coreserver で Imagick を使う方法
PHP で画像処理するのにとっても便利な Imagick クラスだが、このサイトを運用しているレンタルサーバである coreserver では、残念ながら標準で利用できるようにはなっていない。2014年6月までは、携帯農薬検索実験室の旧掲示板に書いた方法で利用できたが、7月に行われた Apache/PHP のバージョンアップの際に CGI 版 PHP の仕様変更があり、利用できなくなった。
このため、現在の coreserver で Imagick を使う方法を改めて認めておくことにする。XREA も2014年12月に同様のバージョンアップが行われているので、coreserver と同じ方法で使えると思われる。
このため、現在の coreserver で Imagick を使う方法を改めて認めておくことにする。XREA も2014年12月に同様のバージョンアップが行われているので、coreserver と同じ方法で使えると思われる。
以前の coreserver ではインストールされている ImageMagick が古く、まずは ImageMagick のインストールが必要だった。が、Apache/PHP のバージョンアップの際に MySQL 等もバージョンアップされたので、もしかすると ImageMagick も更新されたかもということで、下記の PHP スクリプトで確認してみた。結果は 6.8.7-0 で、2014年7月時点での最新バージョンではないものの、比較的新しいのでそのまま使うことにする。
次に、PHP で ImageMagick を使うための PECL Imagick 拡張モジュールだが、下記の PHP スクリプトで標準 extension_dir の各エントリを確認したら、なんと imagick.so がちゃんと入ってるじゃないか! にもかかわらず、phpinfo() で確認しても Imagick クラスは有効になっていない…。でも、imagick.so をインストールする必要はなさそうなので、あとは imagick.so をロードする方法が分かれば Imagick が使えそうだ…。
てなわけで、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 ファイルを置く
2. /public_html/.fast-cgi-bin/php.ini に次の行を追加する
<?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
コメント一覧
0件表示
(全0件)
すべてのコメント一覧へ