押入れ起業

ガレージベンチャー、ならぬ。もっぱら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

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

関連記事

piwik

Piwikの手動アップデート

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

piwik

PHP/MySQLで動くオープンソースのアクセスログ解析「Piwik」を削除した

PHP/MySQLで動くオープンソースのアクセスログ解析「Piwik」を削除した。アクセスログが溜まりすぎたからだ。 元々Piwikを導入したのは、(1)外部のアクセス解析サービスを使うとその重さに引 …

PHP

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

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

PHP

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

URLクエリのパラメータを連想配列にする parse_str – 文字列を処理し、変数に代入する 連想配列からURLクエリを作る http_build_query – URL …

さくらのレンタルサーバー

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

さくらのレンタルサーバで、phpinfo()表示やdate()関数を使っていたら警告が表示されていて不安になった。 Warning: phpinfo(): It is not safe to rely …

open all | close all
open all | close all