MovableType4のcaptchaでハマった

MovableTypeでハマったことがあったのでメモしておく。

コメント入力時にspam避けとして、Captchaの入力を求めることができる。

ちゃんとした説明は用語辞典なんかを見てもらうとして。
Captchaというのは、視認しづらい文字列が書かれた画像が表示されていて、
それを正しく入力できているかという認証方法。
画像にはノイズとかが入っていて、機械的には何が書かれているか処理できないように生成されている。
そのため、人間が見て入力しているかを判定できるって原理。

これを有効にするには、Image::MagickというPerlモジュールが必要。

mt-check.cgiではインストールが確認できているのに、
コメント設定のところで、エラーが表示されていた。
エラーメッセージは以下の通り。

CAPTCHAプロバイダがありません。Image::Magickがインス トールされているか、またCaptchaImageSourceBaseが正しく設定されていてmt-static/images/captcha- sourceにアクセスできるか確認してください。
英語だと、以下のようなメッセージになるらしい(他の言語については割愛)。

No CAPTCHA provider is available in this system. Please check to see if Image::Magick is installed, and CaptchaImageSourceBase directive points to captcha-source directory under mt-static/images.
やっぱりこのまま今後とも公開していくなら、MT4のspamチェックもあるみたいだけど、
匿名コメント可、即時公開にしているので、captcha利用できるようにしたいところ。
(もっとも即時公開の方は、コメントの状況次第ではポリシー変更するかもしれないけど)

Image::Magickについては、mt-check.cgiも管理画面で同様の表示をするものもインストールされていると表示しているから問題ないはず。

そこで、後半部分についていろいろと調べてみた。

そしたら、six apartのフォーラムで以下のような書き込みを発見した。
(自分以外にもハマってるひとがいたのかな)
なお、その書き込みのURLはこちら
davidさん、ありがとう。

以下に、原文の引用とその訳を載せておく。

It appears that the error message is incorrectly referencing the intended directive name - the correct directive name is 'CaptchaSourceImageBase' instead of 'CaptchaImageSourceBase'.
そのエラーメッセージは、将来のディレクティブ名が反映されていて不正確で、現在のディレクティブ名は、'CaptchaImageSourceBase'ではなく、'CaptchaSourceImageBase'である。

If there is no CaptchaSourceImageBase directive present in the mt-config.cgi configuration file, it appears that Movable Type defaults to a server path of <mt dir>/mt-static/images/captcha-source.
mt-config.cgiに CaptchaSourceImageBase ディレクティブがない場合、Movable Type はデフォルトである、<mt dir>/mt-static/images/captcha-source を使用する。
※kalze注:<mt dir>はインストール時に設定した Mobable Type のルートディレクトリ。

To resolve this issue, it appears that you would need to create a subdirectory for captcha images in the mt-static/images directory, set its permissions so the directory is writable by Movable Type, then add a CaptchaSourceImageBase directive to the mt-config.cgi configuration file with the server path to this directory. Example:

CaptchaSourceImageBase /home/username/public_html/mt-static/images/captcha-source
今 回の問題を解決するには、mt-static/images に captcha イメージ用のサブディレクトリを作成し、Movable Type が書き込めるパーミッションにする。そして、サーバ上のこのディレクトリへのパスを指定した CaptchaSourceImageBase ディレクティブを mt-config.cgi という設定ファイルに加える必要がある。

six apart ダメダメじゃないかよ!とおもった。

つまり、captchaが上手く行かず、Image::Magickは正しくインストールされている場合、
static なファイルをアップするディレクトリ(マニュアルの『新規インストールの事前準備』のページにある『スタティックディレクトリ』)の名前をデフォルトである mt-static から変更しているなら、mt-config.cgi ファイルで captcha 用の元画像のあるディレクトリへのパスを指定する必要がある。

このパスの指定方法は、以下の通り。

CaptchaSourceImageBase 絶対パス
カテゴリ: ,

関連する記事

この記事に関連する記事は、3 件です。

トラックバック

このブログ記事に対するトラックバックURL
http://fakelife.info/mt/system/mt-tb.cgi/7

» Movable Type 4にアップグレード。やっぱりハマった2(blog.1cco.com)~のトラックバック

今回からデフォルトでCaptcha機能が付いたというので期待してたら、全々設定方... 続きを読む

» MT4のcaptchaがうまくいかない(Igaloglog)~のトラックバック

MT4の新機能、captcha。 captchaというのは、文字列が書かれた画像... 続きを読む

» ブログ設置時に参考になったページ(飼育記録)~のトラックバック

Mac OS X に PostgreSQL をインストールError durin... 続きを読む

コメントする


画像の中に見える文字を入力してください。