« 高橋名人・街頭インタビュー受ける | メイン | 小学生にBlogを教える »
September 08, 2006
Image::Magickが動かなくなった
昨日の夕方クライアントから1本の電話が、「MovableTypeで画像のアップロードをしてもサムネイルの作成ができないんですけど・・・」
いや予感、以前もオペミスで関係ないCPANモジュールのバージョンアップしてImage::Magickが動かなくなったんだよな。
そのときはPortsからImage::Magick入れなおしてなんとか解決できたけど。
ただ、今回はCPANなんかいじってないし、サーバーにも最近はFTPでしかログインしてないし、とりあえずクライアントには「ホスティング会社に確認をしてみます。最悪、1週間前のバックアップデータから復旧なんてこともありあえるので、Blogの記事データとかはバックアップをとっておいてください。」と伝え、調査開始。
ホスティング業者に連絡をしたのですが、いつものように「調査に時間がかかるので・・・」という調子で、あてにならないので自分で調査開始。
まずは、mt-check.cgiを走らせてMTに依存しているモジュールチェック。
やはり、Image::Magickがないと怒られる。でも「perldoc -l Image::Magick」するときちんとパスが返ってくるので、これまた不思議。
mt-check.cgiでImage::Magickのチェックをする際に、eval{ require Image::Magick }してエラーにならなければOKみたいなことをしていたので、僕もテストスクリプトを書いてみることに。こんな感じ。
#!/usr/bin/perl use Image::Magick; exit;
まあ、たいしたスクリプトじゃないですけどチェックには十分なので早速実行してみると、
Image::Magick object version 6.2.8 does not match bootstrap parameter 6.2.7 at /usr/local/lib/perl5/5.8.6/mach/DynaLoader.pm
こんなエラーメッセージが!どうもImage::Magickで使用しようとしているImageMagick(ややこしいこっちはPortsからいれたほうね)と、実際にサーバーに入っているImageMagickのバージョンが違う模様。
ということで、実際にサーバーに入っているImageMagickのバージョンを調べる。
#convert -version
Version: ImageMagick 6.2.7 06/22/06 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2006 ImageMagick Studio LLC
やっぱり、CPANのImage::Magickで使おうとしているImageMagickのバージョンと違う模様。
なんとなく原因がみえたのでMagick.pmの中身をみてみると33行目あたりに書いてある$VERSIONの値が「6.2.8」になっとる。やっぱりCPANだけが勝手にバージョンアップされてる。
おそらくこの値を直せば直るだろうと確信できたので、以前のトラブルのときにバックアップしておいたファイルに置き換えて、テストスクリプトを実行するとエラーが出なくなる。いける!
ということでMTにログインしてファイルのアップロードを実行するとちゃんとサムネイルが作れるようになっていた。
復旧完了!
ただ気になったのは、なぜCPANモジュールが勝手にバージョンアップされてたのか?
まあ、ホスティング会社がアナウンスなしてサーバーのソフトウェアをアップグレードしたんだろうけどさ。
全く人騒がせな。
Author nitoka : September 8, 2006 10:07 AM
TrackBack
TrackBack URL:
http://www.nitoka.net/blog/mt-tb.cgi/200
Comment
同じトラブルで悩んでます。
ImageMagick-6.0.3-Q16を使っていて何のトラブルも無かったのですが、マシンを変えようとして、同じバージョンのImageMagickをなくしてしまい、新しいバージョンではMTが認識してくれません。
あなたの記事をみて納得しました。
もうImageMagick-6.0.3-Q16は何処を探しても見つかりません。よい知恵があったら教えてください。
Author : Muneaki : December 14, 2007 03:28 PM


