WebalizerのUTF化(Portsから入れる場合)
FreeBSDのPortsからWebalizerを入れるのだが、Webalizerの日本語コードはEUC、一方、apacheのログに書き込まれる検索ワードはUTF-8で、それがそのままwebalizerの解析結果の画面に出て文字化けする。今時のことなのでUTF-8 で統一する。
WebalizerはPortsから入れる。
cd /usr/ports/japanese/webalizer
make extract
make patch
と、ソースを引っ張ってくる。
次に、webalizer_lang.hが参照する予定の日本語ファイルの文字コードをUTF-8に変換。
cd /usr/ports/japanese/webalizer/work/webalizer-2.23-08/lang
cp webalizer_lang.japanese webalizer_lang.japanese.org
nkf -w –overwrite webalizer_lang.japanese
もし、n/fが入ってない場合は、
cd /usr/ports/japanese/nkf
make install
で入れる。
次のコマンドで日本語オプションを入れてコンパイルすると、webalizer_lang.hにwebalizer_lang.japaneseのシンボリックリンクが張られてコンパイルされる。
cd /usr/ports/japanese/webalizer
make BATCH=yes WITH_CHARSET=utf8
make install
/usr/local/binに日本語版のwebalizerがインストールされるので、シンボリックリンクを張っておく。
ln -s /usr/local/bin/ja-webalizer /usr/local/bin/webalizer
設定ファイルをコピー。
cp /usr/local/etc/ja-webalizer.conf-dist /usr/local/etc/webalizer.conf
chmod 640 /usr/local/etc/webalizer.conf
webalizer.conf中のHTMLHeadでcharset=x-euc-jpを、charset=UTF-8に変更。
解析対象のログファイルのありかなど一通り設定した後で、
/usr/local/bin/webalizer -c /usr/local/etc/webalizer.conf
で起動させて解析結果を出してブラウザでアクセスする。