押入れ起業

ガレージベンチャー、ならぬ。サボっていましたが再開します。

XAMPPのPHPとさくらのレンタルサーバー・ライトでImageMagick/imagickがやっと動いたのでメモ

   

XAMPPのPHPでImageMagick/imagickが動いたやりかた

いろいろ失敗しつづけて3日間、XAMPPのPHPでImageMagick/imagickがやっと動いた。ImageMagickは画像を編集するソフトウェアで、imagickはそれをPHPで利用するための関数ということみたい。んで、それをXAMPPのPHPで利用するためのインストール作業が全然うまく行かなかったのだ。

上手くいかないのでこんなエラーが出る。

Fatal error: Class ‘Imagick’ not found in ~~~

当方の環境は Windows7 64bit、XAMPP v5.6.3 (PHP 5.6.3)。

ImageMagick/imagickをPHPで利用するためには、まずImageMagickをインストールして、さらにPHPのextensionにphp_imagick.dllを入れてphp.iniの設定を変える必要がある。

まずImageMagickの公式サイトにImageMagick-6.9.1-1-Q16-x64-dll.exeがあるけど、これはPHPで動かないみたい。php.netにあるのもダメだった。

うまく行ったのは、下記サイトで配布されているImageMagick-6.6.2-10-Q16-windows-dll.exeのファイル。

しかしphp_imagick.dllを、このサイトの説明にある配布サイトからダウンロードするとXAMPP起動時にエラーのアラートが出る。

MagickSmushImages がダイナミックリンクライブラリ CORE_RL_wand_.dllから見つかりませんでした。

うまく行ったのははPECLのサイトにある5.6 Thread Safe (TS) x86 (php_imagick-3.1.2-5.6-ts-vc11-x86.zip)のファイル。これを解凍し、フォルダの中からphp_imagick.dllをC:\xampp\php\extへ入れて、php.iniに

extension=php_imagick.dll

と追記すればオッケー。

これで当初の Class ‘Imagick’ not found のエラーは出なくなったが、PHPマニュアルにあるこのサンプルスクリプトが動かない。エラー内容は下記の通り。

Fatal error: Uncaught exception ‘ImagickException’ with message ‘unable to open image `image.jpg’: No such file or directory @ error/blob.c/OpenBlob/2514′ in C:\xampp\htdocs\(略)\sample.php:5 Stack trace: #0 C:\xampp\htdocs\(略)\sample.php(5): Imagick->__construct(‘image.jpg’) #1 {main} thrown in C:\xampp\htdocs\(略)\sample.php on line 5

このエラーは、ここを参考に画像を絶対位置で指定したら出なくなった。

$image = new Imagick("C:/xampp/htdocs/(中略)/image.jpg");

なお、PECLにあるこれ以外のphp_imagick.dllはどれも何かしらのエラーで動かなかった。

なんだかよくわからないことだらけだが、まずは動いたのでこれでいいことにしよう。

さくらのレンタルサーバー・ライトでImageMagick/imagickを使う方法

サーバ管理画面のPHP設定の編集で、php.iniに

extension = imagick.so

を追記するだけ。さくらではサンプルスクリプトがそのままで動いた。絶対位置指定しないで。

 - PHP , ,

応援クリックお願いします:

PC

PC

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

piwik
PHP/MySQLで動くオープンソースのアクセスログ解析「Piwik」の素晴らしい点

先日ちょろっと書いたけど、Piwikというアクセス解析のPHPスクリプトが実にい …

PHP
ImageTTFTextで同じフォントを使ってもサーバによって文字サイズやアンチエイリアスが違う…

全く同じスクリプトと同じIPA明朝フォントファイルを使い、サーバーだけ変えてIm …

PHP
PDOでSQLiteの研究(1)

最近は電脳卸の研究が止まっているが、いろいろ忙しく。でもやりたい事はいろいろある …

さくらのレンタルサーバー
phpinfo()のdate項目、phpスクリプト中のdate()関数にwarning警告が出た(さくらのレンタルサーバー)

さくらのレンタルサーバで、phpinfo()表示やdate()関数を使っていたら …

PHP
PHPで画像に文字列を描画する関数 imagefttext、描画する文字列の描画サイズを取得する関数 imagettfbbox

言いたいことはタイトルの通り。 imagefttext という関数を使うと画像に …

PHP
ヒアドキュメントに気をつけろ!なぜかエラーが出る場合…

ヒアドキュメントを使ってみたら何故か意味不明な、異常に長いエラーが出たぜ。 Pa …

PHP
PHPでxmlデータを取得する

simplexml_load_file($url); – XMLファ …

PHP
PHPでURLクエリのパラメータを連想配列にする/連想配列からURLクエリを作る

URLクエリのパラメータを連想配列にする parse_str – 文 …

piwik
Piwikの手動アップデート

少し前からPiwikのアップデートが来ていたのだけれど、いつもどおり自動アップデ …

PHP
PHPでリファラ(参照元)をチェックするのはこれでいいの?

あるサイトでのページでフォーム入力し、そのサイト内の別ページへポストして結果を表 …