MT5をFastCGIで動かしているとmt-comments.fcgi
によるCaptcha画像の生成に時間がかかりまくり。おまけに一度アクセスしただけでプロセスが際限なく増えていく。ググってもこんな症状見つからなかったんだけど、うちの変態環境(Mac OS X + Perl5.10.1)が原因なのかな?
Apacheのログ
[notice] Apache/2.2.13 (Unix) mod_ssl/2.2.13 OpenSSL/0.9.8l DAV/2 mod_fastcgi/2.4.2 configured -- resuming normal operations [notice] FastCGI: process manager initialized (pid 23678) [warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23692) [warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23724) [warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23732) [warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23736) [warn] FastCGI: (dynamic) server "/pato/to/mt/mt-comments.fcgi" started (pid 23766) [warn] FastCGI: scheduled the start of the last (dynamic) server "/path/to/mt/mt-comments.fcgi" process: reached dynamicMaxClassProcs (6) [warn] FastCGI: (dynamic) server "/path/to/mt/mt-comments.fcgi" started (pid 23769)
このログの後、30秒待ってやっとCaptcha画像が表示される。これがなかなか直せないのでずっと悩んでいた。症状は違うものの、Captchaのトラブルとしては定番らしいハックを試してみる。
#--------------------------------------------------------- my $im = $imbase->Montage(geometry => $geometry_str, tile => $tile_geom); #--------------------------------------------------------- の部分を以下のように修正します。 #--------------------------------------------------------- my $im = $imbase->Append(stack=>""); #---------------------------------------------------------http://blog.studio-fu.com/archives/2009/12/mt5coreserverjpcaptcha.php
これを試してみると、今度はエラーメッセージも出さずにmt-comments.fcgi
が落ちるようになってしまった。だめだこりゃ(゚ ∀゚)アヒャ
しょうがないのでImage::Magick
のマニュアルをちゃんと読んでみる。
「
Append
」は複数のイメージをくっつけて一つの画像にするメソッドである。オプション「stack
」に真値を指定すると上下、偽値を指定すると左右方向に連結してくれる。
ここで、「偽値……?まさか……」と思って次のように修正したら、
my $im = $imbase->Append(stack=>0);
なんと、完璧に動作するようになった。オイオイなんだよそれorz 悩んだ末にこれで解決とは。
そんなわけでCaptcha画像も正常に表示されるようになりました。「Montage
」がまともに動かない原因は結局わからなかったけれどもまあいいか。
Movabletype完全復旧&多少デザインをいじりました♪
↓の記事に書いたとおり、2/23に本サイト作成に使用しているCMSツールのMovabletypeのバージョンアップの際、トラブルが発生して、しばらくサイト…