Authen::Captcha をインストールして Captcha Plugin を利用する(CPAN による perl モジュールのインストール)

Authen::Captcha をインストールして Captcha Plugin を利用する(CPAN による perl モジュールのインストール)

Posted at June 14,2006 1:50 AM
Tag:[Captcha, CPAN, MovableType, Perl, Plugin]

レンタルサーバに perl モジュールをインストールする方法を紹介します。

レンタルサーバでは Ogawa::memoranda さんの Captcha プラグインの動作に必要な Authen::Captcha モジュールがインストールされていないケースが少なくないようです(GD はインストールされているという前提)。またネットを検索してみても、一般的な perl モジュールのインストール方法は記されているのですが、そこに Authen::Captcha のインストールについて記されている訳ではないのでお互いの情報が結びつかず、perl に精通していない方が検索エンジンから方法を探し出すのは困難なようです。

ということで、Windows マシンからレンタルサーバにログインして、perl モジュール Authen::Captcha をインストールする方法、およびプラグインの修正について記します。私が実施したのは「さくらインターネット」です。
なおレンタルサーバで telnet/SSH がサポートされていない場合は Perl モジュールをインストールすることはできませんのでご注意ください(Movable Type向きのレンタルサーバー比較等で telnet/ssh のサポート状況が分かります)。

1.UTF-8 TeraTerm Pro with TTSSH2 のインストール

レンタルサーバをお使いの方は FFFTP 等の ftp ツールはよくご存知と思いますが、Perl もジュールをインストールするためには telnet または ssh でサーバと通信するためのツールが必要です。

ここでは TeraTerm Pro を利用します。窓の社にある UTF-8 TeraTerm Pro with TTSSH2 をダウンロードしてインストールしてください。

2.サーバにログイン

サーバにログインします。インストールした Teraterm を起動して、表示されたダイアログで下記の設定をしてください。

  • TCP/IP:ここを選択
  • Host: サーバのホスト名(ftp のホスト名と同じ)
  • Service: Telnet/SSH(SSH1 or SSH2)のいずれかを選択(接続するプロトコルはレンタルサーバに確認してください)
  • 他はデフォルトのまま

接続OKであれば、ダイアログが閉じてメイン画面で次のようなプロンプトが表示されます。

login:

ここでは ftp のユーザ名を入力します。OKであれば

Password:

と表示されますので、ftp のパスワードを入力します。入力したパスワードは画面に表示されませんが、焦らずにそのまま入力してください。

OKであれば

Last login: Tue Jun 13 23:39:27 from xxx.xxx.xxx.xxx
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
    The Regents of the University of California.  All rights reserved.
 
FreeBSD 4.10-RELEASE-p19 (xxxxxxx) #x: Sun Nov 27 11:46:21 JST 2005
 
// Sakura internet rental server service
 
%

というようなログイン成功画面が表示されます(表示画面はレンタルサーバによって異なります)。

この状態で

%ls -l

と入力すると、既に存在するファイルがいくつか表示されると思います。

3.perl ディレクトリの作成

レンタルサーバ側で用意してくれている Perl モジュールは、我々が書き込める権限のないディレクトリに配置されていますので、個人環境に Perl モジュールをインストールするためのディレクトリを作成します。

下記のコマンドを入力して perl というディレクトリを作成します。

%mkdir perl

4.perl モジュールインストールの前準備

これはあなたにサーバの管理者権限がない場合、CPAN を利用するための自分用の設定値をもったファイルを作る作業です。 この作業がある意味一番やっかい(というかなんとなく不安)ですので、この項に掲載しているメッセージや下記のリンク先の情報等を参考にゆっくり進めてください。

それではまず、3項の画面で以下のコマンドを入力してください。

%perl -MCPAN -e shell

このコマンドを初めて起動した場合、以下のようなメッセージが表示されます。

/home/hogehoge/.cpan/CPAN/MyConfig.pm initialized.
 
 
CPAN is the world-wide archive of perl resources. It consists of about
100 sites that all replicate the same contents all around the globe.
Many countries have at least one CPAN site already. The resources
found on CPAN are easily accessible with the CPAN.pm module. If you
want to use CPAN.pm, you have to configure it properly.
 
If you do not want to enter a dialog now, you can answer 'no' to this
question and I'll try to autoconfigure. (Note: you can revisit this
dialog anytime later by typing 'o conf init' at the cpan prompt.)
 
Are you ready for manual configuration? [yes]

ここでリターンを1回だけ入力します。入力すると次の質問が表示されます。これと同じ要領で、表示された質問に対して回答するという対話形式で作業を進めていきます。

以下、この作業で表示されるメッセージをまとめて掲載します。質問部分は赤色、入力部分は青色で示しています。青色の入力がない行はそのままリターンを入力してください。リターンのみの場合は、[]の中に書かれている内容が設定値として反映されます(上記のメッセージの場合は yes が入力されたものと解釈されます)。

The following questions are intended to help you with the
configuration. The CPAN module needs a directory of its own to cache
important index files and maybe keep a temporary mirror of CPAN files.
This may be a site-wide directory or a personal directory.
 
 
 
I see you already have a  directory
  /home/hogehoge/.cpan
Shall we use it as the general CPAN build and cache directory?
 
CPAN build and cache directory? [/home/hogehoge/.cpan]
 
 
If you want, I can keep the source files after a build in the cpan
home directory. If you choose so then future builds will take the
files from there. If you don't want to keep them, answer 0 to the
next question.
 
 
 
How big should the disk cache be for keeping the build directories
with all the intermediate files?
 
Cache size for build directory (in MB)? [10]
 
 
By default, each time the CPAN module is started, cache scanning
is performed to keep the cache size in sync. To prevent from this,
disable the cache scanning with 'never'.
 
Perform cache scanning (atstart or never)? [atstart]
 
 
To considerably speed up the initial CPAN shell startup, it is
possible to use Storable to create a cache of metadata. If Storable
is not available, the normal index mechanism will be used.
 
Cache metadata (yes/no)? [yes]
 
 
The next option deals with the charset your terminal supports. In
general CPAN is English speaking territory, thus the charset does not
matter much, but some of the aliens out there who upload their
software to CPAN bear names that are outside the ASCII range. If your
terminal supports UTF-8, you say no to the next question, if it
supports ISO-8859-1 (also known as LATIN1) then you say yes, and if it
supports neither nor, your answer does not matter, you will not be
able to read the names of some authors anyway. If you answer no, names
will be output in UTF-8.
 
Your terminal expects ISO-8859-1 (yes/no)? [yes]
 
 
If you have one of the readline packages (Term::ReadLine::Perl,
Term::ReadLine::Gnu, possibly others) installed, the interactive CPAN
shell will have history support. The next two questions deal with the
filename of the history file and with its size. If you do not want to
set this variable, please hit SPACE RETURN to the following question.
 
File to save your history? [/home/hogehoge/.cpan/histfile]
Number of lines to save? [100]
 
 
The CPAN module can detect when a module that which you are trying to
build depends on prerequisites. If this happens, it can build the
prerequisites for you automatically ('follow'), ask you for
confirmation ('ask'), or just ignore them ('ignore'). Please set your
policy to one of the three values.
 
Policy on building prerequisites (follow, ask or ignore)? [ask]
 
 
The CPAN module will need a few external programs to work properly.
Please correct me, if I guess the wrong path for a program. Don't
panic if you do not have some of them, just press ENTER for those. To
disable the use of a download program, you can type a space followed
by ENTER.
 
Where is your gzip program? [/usr/bin/gzip]
Where is your tar program? [/usr/bin/tar]
Where is your unzip program? [/usr/local/bin/unzip]
Where is your make program? [/usr/bin/make]
Where is your lynx program? [/usr/local/bin/lynx]
Where is your wget program? [/usr/local/bin/wget]
Warning: ncftpget not found in PATH
Where is your ncftpget program? []
Warning: ncftp not found in PATH
Where is your ncftp program? []
Where is your ftp program? [/usr/bin/ftp]
Warning: gpg not found in PATH
Where is your gpg program? []
What is your favorite pager program? [more]
What is your favorite shell? [/bin/csh]
 
 
Every Makefile.PL is run by perl in a separate process. Likewise we
run 'make' and 'make install' in processes. If you have any
parameters (e.g. PREFIX, LIB, UNINST or the like) you want to pass
to the calls, please specify them here.
 
If you don't understand this question, just press ENTER.
 
Parameters for the 'perl Makefile.PL' command?
Typical frequently used settings:
 
  PREFIX=~/perl    non-root users (please see manual for more hints)
 
Your choice:  []
Parameters for the 'make' command?
Typical frequently used setting:
 
  -j3       dual processor system
 
Your choice:  []
Parameters for the 'make install' command?
Typical frequently used setting:
 
  UNINST=1     to always uninstall potentially conflicting files
 
Your choice:  []
 
 
Sometimes you may wish to leave the processes run by CPAN alone
without caring about them. As sometimes the Makefile.PL contains
question you're expected to answer, you can set a timer that will
kill a 'perl Makefile.PL' process after the specified time in seconds.
 
If you set this value to 0, these processes will wait forever. This is
the default and recommended setting.
 
Timeout for inactivity during Makefile.PL? [0]
 
 
If you're accessing the net via proxies, you can specify them in the
CPAN configuration or via environment variables. The variable in
the $CPAN::Config takes precedence.
 
Your ftp_proxy?
Your http_proxy?
Your no_proxy?
You have no /home/hogehoge/.cpan/sources/MIRRORED.BY
  I'm trying to fetch one
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
 ftp://ftp.perl.org/pub/CPAN/MIRRORED.BY
 
 
Now we need to know where your favorite CPAN sites are located. Push
a few sites onto the array (just in case the first on the array won't
work). If you are mirroring CPAN to your local workstation, specify a
file: URL.
 
First, pick a nearby continent and country (you can pick several of
each, separated by spaces, or none if you just want to keep your
existing selections). Then, you will be presented with a list of URLs
of CPAN mirrors in the countries you selected, along with previously
selected URLs. Select some of those URLs, or just keep the old list.
Finally, you will be prompted for any extra URLs -- file:, ftp:, or
http: -- that host a CPAN mirror.
 
(1) Africa
(2) Asia
(3) Central America
(4) Europe
(5) North America
(6) Oceania
(7) South America
Select your continent (or several nearby continents) [] 2
Sorry! since you don't have any existing picks, you must make a
geographic selection.
 
(1) China
(2) Hong Kong
(3) India
(4) Indonesia
(5) Iran
(6) Israel
(7) Japan
(8) Malaysia
(9) Philippines
(10) Republic of Korea
(11) Russian Federation
(12) Saudi Arabia
(13) Singapore
(14) Taiwan
(15) Thailand
(16) Turkey
Select your country (or several nearby countries) [] 7
Sorry! since you don't have any existing picks, you must make a
geographic selection.
 
(1) ftp://ftp.dti.ad.jp/pub/lang/CPAN/
(2) ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
(3) ftp://ftp.kddilabs.jp/CPAN/
(4) ftp://ftp.nara.wide.ad.jp/pub/CPAN/
(5) ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
(6) ftp://ftp.u-aizu.ac.jp/pub/CPAN
(7) ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/
(8) http://ftp.cpan.jp/
Select as many URLs as you like (by number),
put them on one line, separated by blanks, e.g. '1 4 5' [] 1 2 3 4 5 6 7 8 注:すべて選択する必要はありません
 
Enter another URL or RETURN to quit: []
New set of picks:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/
  ftp://ftp.jaist.ac.jp/pub/lang/perl/CPAN/
  ftp://ftp.kddilabs.jp/CPAN/
  ftp://ftp.nara.wide.ad.jp/pub/CPAN/
  ftp://ftp.ring.gr.jp/pub/lang/perl/CPAN/
  ftp://ftp.u-aizu.ac.jp/pub/CPAN
  ftp://ftp.yz.yamagata-u.ac.jp/pub/lang/cpan/
  http://ftp.cpan.jp/
 
 
commit: wrote /home/hogehoge/.cpan/CPAN/MyConfig.pm
Terminal does not support AddHistory.
 
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')
 
cpan>

お疲れ様でした。最後に「cpan>」という入力要求(プロンプト)が出ますので、ここではとりあえず "q" を入力して一旦終了します。

cpan> q
Terminal does not support GetHistory.
Lockfile removed.

再度、最初の perl コマンドを入力します。

%perl -MCPAN -e shell
Terminal does not support AddHistory.
 
cpan shell -- CPAN exploration and modules installation (v1.7601)
ReadLine support available (try 'install Bundle::CPAN')
 
cpan>

ここで、3項で作ったディレクトリに perl モジュールがインストールできるようにするためにコマンドを入力します。

cpan> o conf makepl_arg "LIB=~/perl/lib PREFIX=~/perl/lib INSTALLMAN1DIR=~/perl/man/man1 INSTALLMAN3DIR=~/perl/man/man3"
    makepl_arg         LIB=~/perl/lib PREFIX=~/perl/lib INSTALLMAN1DIR=~/perl/man/man1 INSTALLMAN3DIR=~/perl/man/man3

上記は、さくらインターネットのFAQの内容(それはCPANのドキュメントに基づいています)をそのまま入力しています。ちなみにさくらインターネットのFAQでは4項の作業が記されていません。

そして上記の設定を今後も有効にするために以下のコマンドを入力します。

cpan> o conf commit
commit: wrote /home/hogehoge/.cpan/CPAN/MyConfig.pm

これで perl モジュールをインストールできる準備ができました。

5.perl モジュールのインストール

次のコマンドを入力して、Authen::Captcha をインストールしましょう。

cpan>install Authen::Captcha

私がインストールした時のログは下記です。
正常であればここでかなり長大なログが表示されると思います。

cpan> install Authen::Captcha
CPAN: Storable loaded ok
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/authors/01mailrc.txt.gz
Going to read /home/hogehoge/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/modules/02packages.details.txt.gz
Going to read /home/hogehoge/.cpan/sources/modules/02packages.details.txt.gz
  Database was generated on Thu, 11 Jan 2007 06:26:25 GMT
 
  There's a new CPAN.pm version (v1.8802) available!
  [Current version is v1.7602]
  You might want to try
    install Bundle::CPAN
    reload cpan
  without quitting the current session. It should be a seamless upgrade
  while we are running...
 
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/modules/03modlist.data.gz
Going to read /home/hogehoge/.cpan/sources/modules/03modlist.data.gz
Going to write /home/hogehoge/.cpan/Metadata
Running install for module Authen::Captcha
Running make for U/UN/UNRTST/Authen-Captcha-1.023.tar.gz
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/U/UN/UNRTST/Authen-Captcha-1.023.tar.gz
CPAN: Digest::MD5 loaded ok
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/authors/id/U/UN/UNRTST/CHECKSUMS
Checksum for /home/hogehoge/.cpan/sources/authors/id/U/UN/UNRTST/Authen-Captcha-1.023.tar.gz ok
Scanning cache /home/hogehoge/.cpan/build for sizes
x Authen-Captcha-1.023/
x Authen-Captcha-1.023/Captcha/
x Authen-Captcha-1.023/Captcha/images/
x Authen-Captcha-1.023/Captcha/images/w.png
x Authen-Captcha-1.023/Captcha/images/background4.png
x Authen-Captcha-1.023/Captcha/images/8.png
x Authen-Captcha-1.023/Captcha/images/k.png
x Authen-Captcha-1.023/Captcha/images/x.png
x Authen-Captcha-1.023/Captcha/images/background5.png
x Authen-Captcha-1.023/Captcha/images/9.png
x Authen-Captcha-1.023/Captcha/images/l.png
x Authen-Captcha-1.023/Captcha/images/y.png
x Authen-Captcha-1.023/Captcha/images/m.png
x Authen-Captcha-1.023/Captcha/images/z.png
x Authen-Captcha-1.023/Captcha/images/a.png
x Authen-Captcha-1.023/Captcha/images/n.png
x Authen-Captcha-1.023/Captcha/images/b.png
x Authen-Captcha-1.023/Captcha/images/o.png
x Authen-Captcha-1.023/Captcha/images/c.png
x Authen-Captcha-1.023/Captcha/images/p.png
x Authen-Captcha-1.023/Captcha/images/d.png
x Authen-Captcha-1.023/Captcha/images/q.png
x Authen-Captcha-1.023/Captcha/images/2.png
x Authen-Captcha-1.023/Captcha/images/e.png
x Authen-Captcha-1.023/Captcha/images/r.png
x Authen-Captcha-1.023/Captcha/images/3.png
x Authen-Captcha-1.023/Captcha/images/f.png
x Authen-Captcha-1.023/Captcha/images/s.png
x Authen-Captcha-1.023/Captcha/images/Thumbs.db
x Authen-Captcha-1.023/Captcha/images/4.png
x Authen-Captcha-1.023/Captcha/images/g.png
x Authen-Captcha-1.023/Captcha/images/t.png
x Authen-Captcha-1.023/Captcha/images/background1.png
x Authen-Captcha-1.023/Captcha/images/5.png
x Authen-Captcha-1.023/Captcha/images/h.png
x Authen-Captcha-1.023/Captcha/images/u.png
x Authen-Captcha-1.023/Captcha/images/CVS/
x Authen-Captcha-1.023/Captcha/images/CVS/Root
x Authen-Captcha-1.023/Captcha/images/CVS/Repository
x Authen-Captcha-1.023/Captcha/images/CVS/Entries
x Authen-Captcha-1.023/Captcha/images/background2.png
x Authen-Captcha-1.023/Captcha/images/6.png
x Authen-Captcha-1.023/Captcha/images/i.png
x Authen-Captcha-1.023/Captcha/images/v.png
x Authen-Captcha-1.023/Captcha/images/background3.png
x Authen-Captcha-1.023/Captcha/images/7.png
x Authen-Captcha-1.023/Captcha/images/j.png
x Authen-Captcha-1.023/MANIFEST
x Authen-Captcha-1.023/Captcha.pm
x Authen-Captcha-1.023/Changes
x Authen-Captcha-1.023/t/
x Authen-Captcha-1.023/t/1.t
x Authen-Captcha-1.023/README
x Authen-Captcha-1.023/examples/
x Authen-Captcha-1.023/examples/wwwtest.cgi
x Authen-Captcha-1.023/examples/README
x Authen-Captcha-1.023/license.txt
x Authen-Captcha-1.023/Makefile.PL
 
  CPAN.pm: Going to build U/UN/UNRTST/Authen-Captcha-1.023.tar.gz
 
Checking if your kit is complete...
Looks good
Writing Makefile for Authen::Captcha
cp Captcha/images/8.png blib/lib/Authen/Captcha/images/8.png
cp Captcha/images/s.png blib/lib/Authen/Captcha/images/s.png
cp Captcha/images/a.png blib/lib/Authen/Captcha/images/a.png
cp Captcha/images/l.png blib/lib/Authen/Captcha/images/l.png
cp Captcha/images/z.png blib/lib/Authen/Captcha/images/z.png
cp Captcha/images/5.png blib/lib/Authen/Captcha/images/5.png
cp Captcha/images/b.png blib/lib/Authen/Captcha/images/b.png
cp Captcha/images/9.png blib/lib/Authen/Captcha/images/9.png
cp Captcha/images/4.png blib/lib/Authen/Captcha/images/4.png
cp Captcha/images/6.png blib/lib/Authen/Captcha/images/6.png
cp Captcha/images/background2.png blib/lib/Authen/Captcha/images/background2.png
cp Captcha/images/c.png blib/lib/Authen/Captcha/images/c.png
cp Captcha/images/g.png blib/lib/Authen/Captcha/images/g.png
cp Captcha/images/v.png blib/lib/Authen/Captcha/images/v.png
cp Captcha/images/y.png blib/lib/Authen/Captcha/images/y.png
cp Captcha/images/u.png blib/lib/Authen/Captcha/images/u.png
cp Captcha/images/q.png blib/lib/Authen/Captcha/images/q.png
cp Captcha/images/p.png blib/lib/Authen/Captcha/images/p.png
cp Captcha/images/3.png blib/lib/Authen/Captcha/images/3.png
cp Captcha/images/background4.png blib/lib/Authen/Captcha/images/background4.png
cp Captcha/images/d.png blib/lib/Authen/Captcha/images/d.png
cp Captcha/images/h.png blib/lib/Authen/Captcha/images/h.png
cp Captcha/images/background3.png blib/lib/Authen/Captcha/images/background3.png
cp Captcha/images/n.png blib/lib/Authen/Captcha/images/n.png
cp Captcha/images/o.png blib/lib/Authen/Captcha/images/o.png
cp Captcha/images/f.png blib/lib/Authen/Captcha/images/f.png
cp Captcha/images/Thumbs.db blib/lib/Authen/Captcha/images/Thumbs.db
cp Captcha.pm blib/lib/Authen/Captcha.pm
cp Captcha/images/2.png blib/lib/Authen/Captcha/images/2.png
cp Captcha/images/j.png blib/lib/Authen/Captcha/images/j.png
cp Captcha/images/x.png blib/lib/Authen/Captcha/images/x.png
cp Captcha/images/background5.png blib/lib/Authen/Captcha/images/background5.png
cp Captcha/images/k.png blib/lib/Authen/Captcha/images/k.png
cp Captcha/images/7.png blib/lib/Authen/Captcha/images/7.png
cp Captcha/images/e.png blib/lib/Authen/Captcha/images/e.png
cp Captcha/images/i.png blib/lib/Authen/Captcha/images/i.png
cp Captcha/images/w.png blib/lib/Authen/Captcha/images/w.png
cp Captcha/images/m.png blib/lib/Authen/Captcha/images/m.png
cp Captcha/images/r.png blib/lib/Authen/Captcha/images/r.png
cp Captcha/images/t.png blib/lib/Authen/Captcha/images/t.png
cp Captcha/images/background1.png blib/lib/Authen/Captcha/images/background1.png
Manifying blib/man3/Authen::Captcha.3
  /usr/bin/make  -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.tt/1....ok
All tests successful.
Files=1, Tests=32,  0 wallclock secs ( 0.05 cusr +  0.02 csys =  0.07 CPU)
  /usr/bin/make test -- OK
Running make install
Installing /home/hogehoge/perl/lib/Authen/Captcha.pm
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/8.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/s.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/a.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/l.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/z.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/5.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/b.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/9.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/4.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/6.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/background2.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/c.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/g.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/v.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/y.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/u.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/q.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/p.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/3.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/background4.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/d.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/h.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/background3.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/n.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/o.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/f.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/Thumbs.db
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/2.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/j.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/x.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/background5.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/k.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/7.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/e.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/i.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/w.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/m.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/r.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/t.png
Installing /home/hogehoge/perl/lib/Authen/Captcha/images/background1.png
Installing /home/hogehoge/perl/lib/lib/perl5/5.8.8/man/man3/Authen::Captcha.3
Writing /home/hogehoge/perl/lib/i386-freebsd-64int/auto/Authen/Captcha/.packlist
FreeBSD: Registering installation in the package database
FreeBSD: Cannot determine module description
Cannot create directory /home/hogehoge/db/pkg/bsdpan-Authen-Captcha-1.023: No such file or directory
Appending installation info to /home/hogehoge/perl/lib/i386-freebsd-64int/perllocal.pod
  /usr/bin/make install  -- OK

初回インストールであれば最後に「install -- OK」というメッセージが表示されます。
これで "q" を入力してモジュールのインストール作業を終了します。

cpan> q
Terminal does not support GetHistory.
Lockfile removed.

ちなみにモジュールはアップデートもできます。そのログは下記です。

cpan> install Authen::Captcha
CPAN: Storable loaded ok
Going to read /home/hogehoge/.cpan/Metadata
  Database was generated on Wed, 24 May 2006 04:27:41 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
  ftp://ftp.dti.ad.jp/pub/lang/CPAN/authors/01mailrc.txt.gz
Going to read /home/hogehoge/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Fetching with LWP:
 ftp://ftp.dti.ad.jp/pub/lang/CPAN/modules/02packages.details.txt.gz
Going to read /home/hogehoge/.cpan/sources/modules/02packages.details.txt.gz
 Database was generated on Tue, 13 Jun 2006 03:28:25 GMT
 
 There's a new CPAN.pm version (v1.87) available!
 [Current version is v1.7601]
 You might want to try
  install Bundle::CPAN
  reload cpan
 without quitting the current session. It should be a seamless upgrade
 while we are running...
 
Fetching with LWP:
 ftp://ftp.dti.ad.jp/pub/lang/CPAN/modules/03modlist.data.gz
Going to read /home/hogehoge/.cpan/sources/modules/03modlist.data.gz
Going to write /home/hogehoge/.cpan/Metadata
Authen::Captcha is up to date.
 
cpan>

perl モジュールのインストールについては、google 等の検索エンジンで

perl cpan インストール
perl cpan モジュール

のキーワードで捜せば色々みつかると思います。私はこのエントリーに書いている以外の情報はありませんので、質問する前にネットで検索してみてください。

6.captcha.pl の修正

perl モジュールのインストール目当てにこのエントリーをご覧になっている方は5項で終了です。Captcha プラグインを利用される方はまだ続きます(笑)。

無事 perl モジュールはインストールされましたが、肝心の Captcha プラグインはインストールしたディレクトリを参照するように作られていません。したがってここでは Captcha プラグインから インストールディレクトリを参照する設定を追加します。

plugins/captcha/captcha.pl をダウンロードして任意のエディタで開き、下記の青色の1行を追加してください。

# Captcha - A simple plugin for commenting with CAPTCHA test.
#
# $Id: captcha.pl 212 2006-05-18 17:20:14Z ogawa $
#
# This software is provided as-is. You may use it for commercial or 
# personal use. If you distribute it, please keep this notice intact.
#
# Copyright (c) 2006 Hirotaka Ogawa
 
package MT::Plugin::Captcha;
 
use lib qw(/home/hogehoge/perl/lib);
use strict;
use MT;
use MT::Template::Context;
use File::Spec;
use File::Basename;
use Authen::Captcha;
use base 'MT::Plugin';
our $VERSION = '0.02';
       :

赤色の部分は、3項で作成した perl ディレクトリの下の lib というディレクトリまでの絶対パスを入力します。絶対パスが分からない場合は Teraterm でログインして、下記のコマンドを入力してください。

%cd perl/lib
%pwd
/home/hogehoge/perl/lib
%

上記の赤色部分が絶対パスになります。

captcha.pl を修正したら保存し、元のディレクトリにアップロードしてください。

7.captcha_js.cgi の修正

6項と同様、captcha_js.cgi に青色の行を追加してください。

#!/usr/bin/perl
#
# $Id: captcha_js.cgi 212 2006-05-18 17:20:14Z ogawa $
#
use lib qw(/home/hogehoge/perl/lib);
use Authen::Captcha;
use CGI;

赤色の部分は、3項で作成した perl ディレクトリの下の lib というディレクトリまでの絶対パスを入力します。

captcha_js.cgi を修正したら保存し、元のディレクトリにアップロードしてください。このファイルについてはパーミッションの変更(755 等)を忘れないようにしてください。

以上です。すべての作業が正常に行われていれば Captcha プラグインが動作すると思います。

2006.12.31 追記
7項を追加しました(記述もれでした、すいません)。

関連記事
トラックバックURL


トラックバック

CAPTCHAによるコメントSPAM退治、始めました。 from NOBODY:PLACE - MUTTER
前エントリで書いたように、 スパマーにもわかりやすい方法でトラックバック対策を講... [続きを読む]

Tracked on October 5, 2006 1:20 AM

Movable Type 3.33-ja に Captcha プラグインを導入 from Bowz::Weblog
コメントスパム対策として、Ogawa::Memoranda さんの Captcha プラグイン を導入してみました。 私... [続きを読む]

Tracked on December 12, 2006 4:51 PM

プラグインのその後 from うさぎ四姉妹日記
昨年末の話であるが、このブログのプラグインがおかしいという記事を載せたことがある... [続きを読む]

Tracked on January 20, 2007 7:24 PM

アンチコメントスパム対策 Captchaプラグイン from Tama-Studio's Weblog
何の気なしに確認した "迷惑コメント" にへんなコメントが あったのには驚いた ... [続きを読む]

Tracked on March 1, 2007 1:57 PM

さらにCaptcha導入 from サラリーマン道
このブログのコメント投稿欄にスパムコメントを防止するために SCodeプラグイン というのを導入しておいたんですが・・・ 破られましたorz 広告リンク... [続きを読む]

Tracked on April 9, 2007 6:49 PM

アンチコメントスパム対策 Captchaプラグイン from Tama-Studio's Weblog
何の気なしに確認した "迷惑コメント" に一つあった 古いコメントだが存在してい... [続きを読む]

Tracked on April 19, 2007 10:54 AM

Movable Typeのスパム対策(コメント編・その2) from サラリーマン白書
前回のエントリーで十分だと思われるコメントスパム対策ですが、私はこれに加えてCAPTCHAプラグインというものを導入しました。左の画像を見ていただければ分... [続きを読む]

Tracked on April 21, 2007 8:16 AM

コメントにreCaptcha プラグインを導入しました from 素人でも作れる!おしゃれな男の子服【Caramele*】
コメントを投稿してもらうとき、サインインしていただくような設定にしていました。一... [続きを読む]

Tracked on June 14, 2008 4:34 PM
コメント

こんにちは。さくらインターネットのレンタルサーバを利用しているので、おかげさまで無事モジュールがインストールでき、Captcha プラグインが動く??ようになりました。ところがうまく表示がされません。なお設定は、cgiは755、「data」「images」フォルダーは777にしました。この記事に書かれていること以外で、特に追加設定すべきことがありましたら、ご教授いただけると助かります。よろしくお願いします。

[1] Posted by くにひこ : September 10, 2006 9:54 PM

>くにひこさん
こんばんは。
ご質問の件ですが、ここで公開している内容が全てです。くにひこさんとの差分は data,images ディレクトリのパーミッションを755にしていることくらいです。

上記の変更で正常に動作しないようであれば、
「うまく表示されません」の部分を具体的にして、配布元の Ogawa::memoranda さんに確認頂ければより適切なアドバイスが得られるかもしれません。
それではよろしくお願い致します。

[2] Posted by yujiro : September 10, 2006 11:04 PM

はじめまして。わたしもさくらインターネットを使っており、上記のくにひこさんと同様な状況に困っております。
わたしの場合も画像が表示されず、captcha_js.cgiを直接URLで入力してみるとインターネットサーバエラーになってしまってます。
これはパーミッションだろうと思いつつも、色々と変更したりしても変わりません。

一つ気づいた点があるのですが、プラグイン画面でちゃんとCaptchaが表示されているものの、右側が「プラグインについて」までしかないのですが、yujiroさんは「設定を表示」までありますでしょうか?

また、もし、宜しければyujiroさんはこのCaptchaプラグインをどのような順序でインストールしたのか流れをお教えいただけると幸いです。

プラグインの開発者であるogawaさんに本来お聞きするのがすじでしょうが、既にわたしと同じ状況の方のコメントがありまして、パーミッションを指摘されてましたが、無事に解決されたのが不明です。

何卒、よろしくおねがいいたします。

[3] Posted by ジョンディ : November 20, 2006 1:13 AM

連投もうしわけありません。
ブログ自体のプラグインのCaptchaには「設定を表示」がありました。すいません。
ただ、その設定で
images URL→http://xxx/cgi/mt/plugins/captcha/images/
Path→/home/xxx/www/hoge/cgi/mt/plugins/captcha/images
となってますが、これは何も変更しないでも表示されるものなのでしょうか?
なお、captcha_js.cgiはやはりインターネットサーバエラーのままです。
ログエラーを見るとCaptcha.plでエラーが起きてる内容はありましたが、いったいどこが悪さをしているのか分からず、相変わらず困ってるのには変わりません。
引き続き、なにかアドバイスおねがいします。

[4] Posted by ジョンディ : November 20, 2006 9:22 AM

>ジョンディさん
こんにちは。
ご質問の件ですが、まずこの記事の目的である Authen::Captcha モジュールのインストールと captcha.pl の修正はお済みでしょうか。

また、Captchaプラグインのドキュメントを参照したところ、パーミッションの変更箇所はいくつかありますが、captcha_js.cgi 以外に data ディレクトリおよび image ディレクトリのパーミッションも変更されていますでしょうか。

images URLおよび Path の設定については、それぞれ正しく設定されていることを確認する必要があります。URLはブラウザに入力して404にならないこと、Path はFTPツール等で記入されたパスが存在することを確認してください。

これでCGIのエラーが発生する場合、サーバのエラーログを拝見しなければ、当方では適切な回答は行うことができません。

それではよろしくお願い致します。

[5] Posted by yujiro : November 21, 2006 1:40 PM

こちらの記事を読ませていただいて
早速captchaの導入を試みてみたのですが
うまくいかないのでお聞きしました。

新しくサーバーを変えて
sshが使えるようになったので、Perlモジュールをインストールしました。
モジュールの方はうまくインストールできましたが、MTのプラグイン画面の「設定を表示」で躓きました。Enable Captchaにチェックを入れ、Secret Stringに適当な文字を入れ、設定を保存を押しました。そうしたら、

SQLエラーが発生しました: ERROR: null value in column "plugindata_id" violates not-null constraint

というエラーがでました。DBは新しくPostgreSQLを使っています。文字コードはEUC-JPです。その辺りが原因なのだとは思いますが、解決策をアドバイスいただければと思います。DBのせいでできないのであれば、あきらめます。お手数かけますが、よろしくお願いします。

※OGAWAさんのところにコメントしたのですが、うまく受け付けてもらえなかったので、とりあえずyujiroさんにお聞きしました。すみません。

[6] Posted by ヨンシマイ : December 6, 2006 4:58 PM

>ヨンシマイさん
こんばんは。
ご質問の件は当方では原因不明ですが、下記のようなサイトがありましたのでDBかもしれません。
http://pocketstudio.jp/log2/2006/11/mt_postgresql.html

可能であれば、配布元の ogawa::memoranda さんに確認頂いた方が良いと思われます(「コメントが受け付けられない」というのがどのような事象か不明ですが、であればトラックバックで)。
お役に立てず申し訳ありません。
それではよろしくお願い致します。

[7] Posted by yujiro : December 6, 2006 7:23 PM

こんばんは、 yujiroさん。
お返事ありがとうございます。
教えていただいたサイト確認しました。
やはりDBが原因のようです。
PostgreSQL使っていて大丈夫なのか心配です。

ogawa::memoranda さんへのコメントいけました。先程は、最初にそれこそCAPTHAコードを入れ忘れ、二度目の投稿は弾かれるというありさまでした。少し時間が経って投稿しても弾かれまして大変でした(笑)

いつも丁寧に対応していただき大変感謝しております。またよろしくお願いします。

[8] Posted by ヨンシマイ : December 8, 2006 1:12 AM

>ヨンシマイさん
こんばんは。
ご連絡ありがとうございました。
PostgreSQL は新しくサポートされたDBですので時間が経てば改善されていくでしょう。
こういう場合、全てのケースがテストできていない可能性があるので、利用者ご本人からMovable Type へのフィードバックに今回の事象を送信しておくことをお勧めします。
こちらこそ今後ともよろしくお願い致します。

[9] Posted by yujiro : December 8, 2006 4:24 AM

こんばんは、お久しぶりです。

本日うちもCaptcha Pluginを導入する事に決めました。ローカルではかなり前から試していたため、特に問題もなくできたのですが。

一つだけ躓いています。

「一度でも『情報を保存する?』にチェックを入れてコメントした事がある場合、サインイン後に投稿すると弾かれる」

回避方法は簡単(情報を保存する?のチェックを外してからサインインする)なのですが、どうもしっくりこなくて。

こちらではこんな現象がありますか?

[10] Posted by WIND : December 16, 2006 6:22 PM

>WINDさん
こんばんは。
情報ありがとうございます。
今、このコメントで試してみました。
また今のところ同じ情報は頂いておりません。
ちなみに私が使用している Captcha プラグインのバージョンは 0.02 です。
それではよろしくお願い致します。

[11] Posted by yujiro : December 17, 2006 10:01 PM

こんにちは。

ちなみに私が使用している Captcha プラグインのバージョンは 0.02 です。

あら、結構古いのを利用していたのですね。うちは最新版を使っています。これが原因だったら試す価値があるかもしれないですね^^
偶然ですが、古いのはダウンロードできないだろうと諦めつつもローカルテスト用のバージョンを確認してみたら、何故か0.02を使っていましたw

現状維持で行くか(←面倒なのでこれが優勢^^;)0.02を試してみるか・・・もしバージョンダウンする気になったら、結果を報告しますね^^

[12] Posted by WIND : December 18, 2006 12:01 PM

>WINDさん
こんばんは。
ご連絡お待ち申し上げます。
ではでは!

[13] Posted by yujiro : December 18, 2006 9:22 PM

ほんとうにほんとうに助かりました。ありがとうございます。

[14] Posted by 匿名 : July 18, 2007 10:26 PM

>匿名さん
こんばんは。
よく分かりませんがお役にたてたようでなによりです。
ではでは!

[15] Posted by yujiro : July 20, 2007 11:14 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)