前にインストールしておいたと思ったら、あれれはいってなかった Jcode Perl モジュールをインストール。 Jcode.pm は jcode.pl を Dan Kogai 氏が改良したもの。 UTF-8 が扱えるようになっているのが嬉しい。
$tar zxvf Jcode-0.60.tar.gz $cd Jcode-0.60 $perl Makefile.PL PREFIX=$HOME/public/local LIB=$HOME/public/local/lib/site_perl INSTALLMAN3DIR=$HOME/public/local/man/man3 $make $make install
1月1日に作り始めた WWW::Search 用 Namazu2 モジュールと、それを使ったメタサーチCGIがある程度できたので、本サイトに設置しようかと考えた。
で WWW::Search モジュールをサーバ上にインストールしなければならない。 WWW::Search が別のモジュールに依存していて、さらにそのモジュールが別のモジュールに依存していて……ということでイモヅル式に必要なモジュールが結構ある。 最初は一つづつ make していこうかと思ったのだが、やはり面倒なのとサーバーから CPAN ミラーまでかなり近かったので、CPAN モジュールを使ってインストールする事に(CPAN モジュールはネットワークが細いとちょいと厳しい気がする)。
>setenv PERL5LIB $HOME/local/lib/site_perl >perl -MCPAN -e shell Parameters for the 'perl Makefile.PL' command? のところで PREFIX=$HOME/local INSTALLSITELIB=$HOME/local/lib/site_perl INSTALLMAN3DIR=$HOME/local/man/man3 と入力 install WWW::Search install Jcode
$HOME は実際にはホームディレクトリを指定。Jcode.pm もいれておく。 これでごそっとインストール終了。 途中 Perl 5.6 までいれようとするのでこれは Ctrl-C で飛ばす(他にいい方法があるかな?)。
ActivePerl 用に Jcode.pm 0.76 の PPM パッケージを作ってインストール。 ビルドは 前にやったのとほぼ同じ。 Visual Studio が動く環境で、
tar zxvf Jcode-0.76.tar.gz cd Jcode-0.76 Unicode/uni.c の #include <sys/errno.h> を #include <errno.h> に修正 perl Makefile.PL nmake tar cvf Jcode-0.76.tar blib gzip --best Jcode-0.76.tar
>ppm install Jcode.ppd Installing package 'Jcode.ppd'... Error installing package 'Jcode.ppd': Read a PPD for 'Jcode.ppd', but it is not intended for this build of Perl (MSWin32-x86-multi-thread)
???。 MSWin32-x86-multi-thread でコンパイルしたではないか。 ... かなり、かなり、かなり、はまった末、Jcode.ppd の CODEBASE 指定を
<CODEBASE HREF="Jcode-0.76.tar.gz" />
と書いたらインストールできた。 たしか、前はそんな必要なかったぞ(でここは関係ないと思ったという安直な落し穴に落ちたというわけ)。
www.naney.org のアクセスログをローカルにもってきて統計解析をするのに、今回は analog ではなく AWStats を使うことに。
以前 www.naney.org に入れてみた時より、随分使いやすくなった感じ。
Debian パッケージを入れた後、awstats.naney.org というバーチャルドメインをローカルのApacheに用意(/var/www/awstats.naney.org)。
Alias /icon/ "/usr/share/awstats/icon/"
も設定に追加しておく。
ファイルレイアウト:
/var/www/awstats.naney.org/ | +-- .htaccess | +-- awstats.conf <-- 作成 | +-- awstats.pl <-- コピーしてきて一部修正 | +-- cache <-- DNSキャッシュ用 (まだ未使用) | +-- data <-- データを保存 | +-- plugins <-- プラグイン | +-- wikicker.pm <-- /wiki/(.*).html を $1 で表示するプラグイン(自作)
awstats.pl はパッケージのものをコピー。DecodeEncodedString の中で Jcode.pm を使って文字列を UTF-8 に変換するように修正。
ローカル用なのであまり気にせず DocumentRoot の下にもりっとファイルを置いておく。
awstats.conf はこんな感じ。
LogFile="/path/to/downloaded-log/access.log" LogType=W LogFormat=1 LogSeparator=" " DNSLookup=2 DirData="./data" SiteDomain="www.naney.org" HostAliases="localhost" DNSStaticCacheFile="cache/dnscache.txt" DNSLastUpdateCacheFile="cache/dnscachelastupdate.txt" URLWithQuery=1 URLReferrerWithQuery=1 LevelForWormsDetection=2 ShowWormsStats=1 LoadPlugin="wikicker" ValidHTTPCodes="200 304 -"
ValidHTTPCodes の '-' というのは、本来不要。自前のSSIで似非 Combined Log を生成する際に '-' を出力する事があるので追加。
日本語もきちんと出るしいい感じ。 指定した月ではなく、指定した日のログを見れるといいのだが設定すればできるようにならないかな。
analog と違ってプラグインが使えるのが良い。 Perlスクリプトだから、その気になれば簡単に awstats.pl 自体を変更する事もできるし。
今回は ShowInfoURL 用プラグインを書いて、/wiki 以下のURLの際は unescape して PageName を表示するようにしてみた。
その他いろいろ遊べそう。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。
※内容は個人的見解であり所属組織とは関係ありません。