この間書いたようにLAMP系にも触れていたいということで,XREAのフリースペースを利用している。「Ajax Edit Commentsフリー版(v.5.0.7.0)のLAMP系での使い方。」でも,4つテストしたレンタルサーバの一つとしてここで試してみた。
で,現在のXREAのフリースペースでの私の主題目は,Perlによるcgiの勉強である。現在,私が使っているXREAのサーバのPerlのバージョンは5.8.8である。自鯖のほうでもPerl5.x.xを使っているので,cgiとしても基本的にはそれに従う方向で書く勉強をしている。そんなわけで,パッケージやモジュールを使った書き方を学ぶことになる。
昔,齧ったことのあるPerlに比べて,モジュールのありがたさを満喫しているところだ。今まで使ってきたモジュールは,XREAのサーバにはすべて導入されていた。まぁ,標準モジュール以外で使ったのは,Image::SizeとImage::Magickだけだから,XREAあたりでは当然なのかもしれない。
一方,自鯖のほうには,どちらも入っていなかった。Image::Sizeのほうは,Perl Package Manager(PPM)で簡単にインストールできた。Image::Magickのほうは,実はこの間アンインストールしたばかりだ。早速,再インストールした。
見た目は似たようなブログCMSであるWordPressとMovableTypeだが,大きな違いの一つはWordPressはPHPスクリプトの塊,MovableTypeはPerlスクリプトの塊ということだ。
インストールが終ったときに,WordPressは「たったこれだけで終わりよ」みたいに簡単さを誇示しているが,WordPressしかインストールしたことがなかったら,あんまり印象に残らないアピールだろう。でも,本当に楽なほうだと思うよ。
MovableTypeもバージョンが進むにしたがって,どんどん楽になってきていたので,極端に難しい方ではないと思うが,最初に導入したときには本当に苦労した。全く経験がなかったせいもあるが,サーバがWindowsだったので情報が少なかったということもあると思う。そして,何よりハマったのがPerlの追加モジュールのインストールだったのだ。その中でも,Image::Magickについては,いろいろと手こずった。
ActivePerl上でのImageMagick(=PerlMagick)のインストールで気を付けるポイントは,結局のところ2つなのだ。
- ひとつは,使おうとしているActivePerlに対応しているバージョンのImageMagickを使うこと。
- もう1つは,インストール後必ずWindowsを再起動すること。
ほかに,staticを使うかdllを使うかとか,Visual C++ 2010 Redistributable Package (x86) or Visual C++ 2010 Redistributable Package (x64)のインストールとか,x86とx64のどちらを使うかとかあるが,これについてはImageMagick(=PerlMagick)に書いてある。
しかし,上記の2つは,結構気づかない。
1.のほうは,ImageMagickをインストールするときに,ActivePerlv5.xx.x build xxxxに対してPerlMagickをインストールするという項目がある。ここで,前もってインストールしてあるActivePerlのバージョンが書かれていれば絶対に間違いないし,わずかにバージョンが違うだけでもダメなのだ。
2.のほうは,本当に落とし穴で,ImageMagickインストール後にPerl Package Manager(PPM)上ではちゃんとモジュールが見えるのだが,それでもWindowsを再起動しないままで使えたことは一度もない。実際,今回もOSを再起動しないまま使ったら,Image::Magickが見つからないというエラーが出た。
初めのころは,ほんっと,ハマったよー。おかげで,濡れ衣を着せちゃったことさえあるくらいなのだ(笑)。
追記(2014.2.24):
ドメインを移管したので, XREA においてあったものは,なくなった。「Perlによるcgiの勉強」の報告は,スタードメインに移した。
「ActivePerl+ImageMagick」への2件の返信
ImageMagickは、以前使わせていただいていた無料のdoratomoサーバに入っていなくて、フォトアルバム的なCGIが使えなくて残念だったことがあります。
多分、以前、電右衛門さんが画像をアップしてBGMを簡単に付けたいと望まれていたことから
http://todos.xsrv.jp/11patioalacarte/todos.cgi?no=64
そうしたCGIに取り組まれ、その流れでImageMagickも導入されたのかと推測しているのですが。
今は、元の画像のサイズ変更まで進まれていますね。
あちらのサイトに行かないと経過が分からないのですが、一つのテーマで流れているので把握しやすく興味深く拝見させていただいています。
りりさん,こんにちは。
> ImageMagickは、以前使わせていただいていた無料のdoratomoサーバに入っていなくて、
> フォトアルバム的なCGIが使えなくて残念だったことがあります。
そうですか。XREAでは,拡張モジュールについても,依頼を出せば,かなりインストールしてくれるようです。
patioの場合は,サーバにない場合も考えて,ライブラリで持たせているようですね。Perlのcgiの設置が可能なサーバなら,モジュールをライブラリとして置いてやれば使えるのかもしれません。むこうのサイトにも書きましたが,モジュールの充実と使い方の易しさに感動しているところです。Windows系でもppmで簡単にインストールできますし,CPANも探しやすいです。
昔,cgiを勉強しようとしたことがあるのですが,その頃はcgiといえば,Perlという感じでした。しかし,$_や@_になじめなくて,当座のやっつけ仕事だけでそのままになってしまったことがあります。変数に関して宣言がいらないとか,変数の型があいまいとかにも,違和感がありました。
今は,変数の宣言については,「use strict;を使いましょう」という感じで,セキュリティがらみで,少し厳しくなったようです。それでも,$img1=1,$img2=’.jpg’,としたときに,$img3=”$img1$img2″で使えるなんていうのには,いまだに違和感があります。
> http://todos.xsrv.jp/11patioalacarte/todos.cgi?no=64
> そうしたCGIに取り組まれ、その流れでImageMagickも導入されたのかと推測しているのですが。
はいそうです。
http://tinyurl.com/74k6ql8
の関係です。自宅サーバのImageMagickは,この間,アンインストールしたばかりだったのですが,改めてインストールしました。それに伴い,MovableTypeの自宅サーバ導入に苦労したときのことを思い出しました。それに,PERL5のモジュールについて調べているときに,ActivePerl上で私が苦労したことに苦労している感じの記事を多く見まして,この記事を書いた次第です。
「Windows系でもppmで簡単にインストールできますし,CPANも探しやすいです。」と感じるのは,今の私だからかもしれません。当時,DBI/DBDなどの導入に,コマンドラインからppmを使うのに四苦八苦した思い出があります。それ以上に,ImageMagick(PerlMagick)には苦労しました。これは,ActivePerlの場合CPANのものでは動かないのです。おまけに,OS再起動要請は出ないのですが,再起動しないと動かないし。この件は,Windowsのバージョンによっても違うかもしれませんが。
わーッ,長くなっちゃいました(汗)。あしからず……