押入れ起業

ガレージベンチャー、ならぬ。もっぱらPHPプログラミングとアフィリエイトの研究をしています。

PHP

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

PC

PC

-PHP
-, ,

執筆者:


comment

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

関連記事

PHP

PHPでxmlデータを取得する

simplexml_load_file($url); – XMLファイルをパースし、オブジェクトに代入する get_object_vars – 指定したオブジェクトのプロパティ …

PHP

‘http://’. $_SERVER[‘HTTP_HOST’]; も header(‘Location: ./’);相対指定もやってはいけない事だった

$_SERVER[‘HTTP_HOST’]でリンク先を作るのも、header(‘Location:~’);のアドレス相対指定転送も、やってはいけないこと …

PHP

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

あるサイトでのページでフォーム入力し、そのサイト内の別ページへポストして結果を表示したい。ただし別サイトからのポストはなるべく防ぎたい。 ↓ リファラをチェックして、何もなければ見逃してやる。リファラ …

daterss

アクセスした日時を返すだけのRSSウェブサービスを作った

電脳ウェブサービスをやると言って、んでいよいよhtmlへはめ込む段階で今度はBootsTrapだと言って、それ以降更新してなかったが実はCSS2やCSS3の本を読んでいる途中という脇道から反れ反れでは …

piwik

Piwikの手動アップデート

少し前からPiwikのアップデートが来ていたのだけれど、いつもどおり自動アップデートをしようとするとエラーが出たので更にアップデートが来るかもと思い放置していた。 curl_exec: Unknown …

open all | close all
open all | close all