2008年11月13日木曜日

MT4.2 CAPTCHAの不動作回避策。

MT4.2でコメントの承認に使われるCAPTCHA画像が表示されない不具合に遭遇した人も多いことでしょう。私もそのひとりでございます。
回避策として、以下にまとめておくことにします。

1
Perlモジュール
Crypt::DH
Crypt::DSA
Image::Magick

が導入されていること。

2
mt-config.cgi内に、
CaptchaSourceImageBase /home/******/******/www/htdocs/mt-static/images/captcha-source
など、images/captcha-sourceへのパスの記述があること。
(CaptchaImageSourceBaseではないので注意する)

3
MTの設定→登録/管理、コメント等で適切な設定がされているのが前提です。

  1. 登録/管理 で認証方式は「認証なしコメント」のみチェック。

  2. コメント設定の表示オプション でCAPTCHAプロバイダは「Movable Type既定」を選択。


4
CAPTCHA画像が表示されるべき所のリンクがデッドで画像が出ない場合、その画像部分のプロパティを開いて、URLをコピーし、直接アドレスバーに入力した場合、以下のようなエラーメッセージが表示されることがあります。
Can't locate object method "Blur" via package "Exception 415:
Postscript delegate failed `/tmp/magick-XX6Ui17y'"
(perhaps you forgot to load "Exception 415:
Postscript delegate failed `/tmp/magick-XX6Ui17y'"?)
at lib/MT/Util/Captcha.pm line ***.


この場合、利用しているサーバーで、ImageMagickのGhostscriptパッケージが導入されていない可能性があります。管理者に相談してみてください。

5
Captcha.pmの一部変更
(MTインストールディレクトリ) / lib / MT / Util / Captcha.pm の187行目、

my $im = $imbase->Montage(geometry => $geometry_str,
tile => $tile_geom);


を削除して、

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


を挿入。


ここまでやれば大丈夫だと思うのですが、いかがでしょうか。




0 件のコメント:

コメントを投稿