MT5カスタマイズ:コメントできない!CORESERVER.JPでCaptcha画像が表示されない

このブログにコメントができないと、Twitterでメッセージをもらいました。

そういえば、Movable Type 4から5にバージョンアップしてから、コメント投稿のテストはしていなかった・・・。ということで確かめたところ、認証に使われるCaptcha画像が表示されてない!

実は、MT3からMT4へのアップグレードの時にサーバを引っ越したときにも、Captchaが表示されないという問題がありました。

PerlモジュールCrypt::DH追加で解決!「MT4のCAPTCHA画像が表示されない」 - Notebook :: Hibi no Note

今回はインストール後のmt-check.cgiでは、直接関係しそうなモジュールについてなにも書かれてなかったので、当然OKだろうと。どうも、MT4の時にはまったものとは、違う理由のようです。

前回は目星をつけるためのエラーメッセージがどこかに表示されたので、解決することができたのですが、今回は手掛かりなし。

仕方なく「MT Captcha画像 表示されない」系のキーワードの組み合わせで検索しては、上位から順に見ているうちに、偶然、CORESERVERでCaptchaが表示されないという問題を解決した方のブログにいきあたりました。

私が今使っているレンタルサーバも、CORESERVER.JP。CORE−MINIプランを契約しています。手元での現象では、原因を推測できるようなものがなく、他に見当がつけられないし、CORESERVERつながりというだけで同様に修正してみました。ちょっとソースを修正しないといけない箇所があるとのこと。

CORESERVER で MT4 のCAPTCHA画像が表示されないときは : ohsuda.com

CORESERVERでのMovableType4のCaptcha画像の不具合回避 - Glocal Vision

ImageMagickという画像処理ツールの中で、montageコマンドがフォントを探す際に見つからずエラーが出ているようです。montageコマンドを避けてconvertコマンドを使うように、Captcha.pmを変更してこの問題を回避しています。

修正箇所は以下の通り。

#---------------------------------------------------------

my $im = $imbase->Montage(geometry => $geometry_str,

tile => $tile_geom);

#---------------------------------------------------------

の部分を以下のように修正します。

#---------------------------------------------------------

my $im = $imbase->Append(stack=>"");

#---------------------------------------------------------

なんと、見事に解決!

さらに元の記事をたどっていくと、相談者さんはXREA。私も前はXREAでしたが、この現象はなかったので、同じプランでもサーバマシンが違うと、インストールされているモジュールなどの条件に左右されるようです。

これで、サインインなしでもコメントが投稿できるはず。