Webalizer日本語版の導入。

| コメント(0)
CentOS 5.4 64bit環境では、Webalizerがyumレポジトリに導入されている。
ただし日本語版ではないらしく、普通に実行すると全て英語表示になる。
これを日本語に対応させるため、ソースからmakeを試みた。
WebalizerのHPを調べてみると、他言語対応はwebalizer_lang.hというヘッダファイルの置き換え&再コンパイルでやっているらしい。
要は表示するchar定数を各言語に置き換えているだけ、ということか。
(※手動でwebalizer_lang.hに利用言語のファイルからln -s するのではなく、./configureのオプションで指定する。手動でやるとconfigure時にリンクが上書きされてしまうので注意)
なお、インストールしたバージョンは現時点の最新版:webalizer-2.21-02である。

WebalizerのHPからソース一式tar.gzをダウンロード&解凍し、configureしてみると、libdbがないというWarningが出た。(別に必須ではないので、--enable-dnsを外すという手もなくはない)

% ./configure --enable-dns --with-dblib=/lib \
--mandir=/usr/share/man --with-language=japanese
...
checking for gd.h... yes
checking for main in -ldb... no
configure: WARNING: libdb not found.. DNS/GeoDB code disabled!
...

一応、探してみて適当にインストール。どうもBerkeley DB絡みらしいので、その辺りから当たってみると、

% yum install db4-devel

が正解だった。これでWarningもでなくなったので、普通にmakeしてinstall。

% make; make install
% which webalizer
/usr/local/bin/webalizer

また、CentOS 5.4の日本語文字コードはUTF-8だが、WebalizerはEUC-JPで動いているらしい。
実際、出力されるhtmlファイルの文字エンコードはEUC-JPになっていた。
Webalizerの設定ファイルにHTMLヘッダを指定する事ができるのだが、ここを

% vi /etc/webalizer.conf
HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=euc-jp">

としても、なぜかブラウザからはUTF-8と認識されてしまい、いちいちエンコーディングを切り替えるのが面倒。
(これはブラウザローカルの問題なのかもしれないが)
えぇいチマチマやってられるか、とふりかぶって、nkfで無理矢理utf-8化してしまう方法を選択。

% vi webalizer.sh # webalizer実行スクリプトを作成
#!/bin/bash
# - webalizer実行
/usr/local/bin/webalizer -c /etc/webalizer.conf
# - webalizerの解析結果htmlファイル生成場所に移動
cd /var/www/usage
# - utf-8エンコードに書き換え
/usr/bin/nkf -w80 -Lu --overwrite *.html

生成されるhtmlファイルのヘッダもutf-8指定にする。

% vi /etc/webalizer.conf
HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">

一応これで文字化けがなくなったので、まぁよしとする。

20100104_webalizer.png

コメントする

Powered by Movable Type 4.25

2011年5月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

このブログ記事について

このページは、cauzyが2010年1月 4日 10:12に書いたブログ記事です。

ひとつ前のブログ記事は「ntfsフォーマットにCentOSからアクセスする。」です。

次のブログ記事は「AVATR.」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。