Raspberry PiでWebalizerを日本語化(utf-8)してmake installする

Webalizer のソースコードを日本語化 (utf-8) した上で make install し、画像も含めて文字化けすることなく Webalizer がレポートを生成出来るようにします。

環境

Raspbian GNU/Linux 8.0 (jessie)
Webalizer Version: 2.23-08

事前に必要なものをインストールする

make install に必要となるライブラリなどをインストールします。

$ sudo apt-get install zlib1g-dev libpng-dev libgd-dev libdb-dev libbz2-dev libgeoip-dev geoip-bin

Webalizer 用の GeoDB データベースをインストールします。

$ wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-geodb-latest.tgz
$ tar xzfv webalizer-geodb-latest.tgz
$ sudo mkdir /usr/share/GeoDB
$ sudo cp -p GeoDB.dat /usr/share/GeoDB

GeoIP のデータベースを更新します。

$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
$ gunzip GeoIP.dat.gz
$ sudo cp -p GeoIP.dat /usr/share/GeoIP

Webalizer を日本語化 (utf-8) して make install

以下の URL で最新の Tar/Gzip archive の URL を確認します。
http://www.webalizer.org/download.html

Webalizer のソースコードを入手し、言語ファイルを utf-8 にコンバートします。

$ wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.23-08-src.tgz
$ tar xzfv webalizer-2.23-08-src.tgz
$ cd webalizer-2.23-08/lang/
$ iconv -f euc-jp -t utf-8 webalizer_lang.japanese > webalizer_lang.japanese_utf8
$ mv webalizer_lang.japanese webalizer_lang.japanese_euc
$ mv webalizer_lang.japanese_utf8 webalizer_lang.japanese
$ cd ../

make install し、webalizer.conf ファイルを作成します。

$ ./configure --prefix=/usr/local/webalizer --with-language=japanese --enable-dns --enable-geoip --enable-bz2
$ sudo make
$ sudo make install
$ cd /usr/local/webalizer/etc/
$ sudo cp -p webalizer.conf.sample webalizer.conf
$ sudo nano webalizer.conf

Webalizer の動作を確認する

ここでは、httpd に apache を利用していると仮定します。
nginx の場合はログファイルの整形が必要なため、nginx.conf の http セクションにある log_format を以下のように設定し、apache のログ形式にあわせます。

http {
  log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '"$status" $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for" "$gzip_ratio"';
}

webalizer.conf を開きます。

$ sudo nano /usr/local/webalizer/etc/webalizer.conf

解析するアクセスログファイルを指定します。

LogFile /var/log/httpd/access_log

解析結果の出力先を指定します。

OutputDir      /var/www/webalizer

GeoDB / GeoIP を設定します。

GeoDB           yes
GeoDBDatabase   /usr/share/GeoDB/GeoDB.dat
GeoIP           yes
GeoIPDatabase   /usr/share/GeoIP/GeoIP.dat

HTMLHead に utf-8 を指定します。(4行目を追加します)

#HTMLHead <META NAME="author" CONTENT="The Webalizer">
#HTMLHead <META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
 
HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

以上で webalizer.conf の初期設定は終了です。
続いて OutputDir で指定したディレクトリを作成します。

$ sudo mkdir /var/www/webalizer

解析の実行は

$ sudo /usr/local/webalizer/bin/webalizer -c /usr/local/webalizer/etc/webalizer.conf

で行い、結果が OutputDir で指定したディレクトリに出力されます。

$ ls -la /var/www/webalizer/
合計 88
drwxr-xr-x 2 www-data www-data  4096  2月 10 15:01 .
drwxr-xr-x 4 www-data www-data  4096  2月  7 20:25 ..
-rw-r--r-- 1 root     root      2682  2月 10 15:01 ctry_usage_201702.png
-rw-r--r-- 1 root     root      2731  2月 10 15:01 daily_usage_201702.png
-rw-r--r-- 1 root     root      1792  2月 10 15:01 hourly_usage_201702.png
-rw-r--r-- 1 root     root      3798  2月 10 15:01 index.html
-rw-r--r-- 1 root     root      2169  2月 10 15:01 usage.png
-rw-r--r-- 1 root     root     50749  2月 10 15:01 usage_201702.html
-rw-r--r-- 1 root     root      3909  2月 10 15:01 webalizer.current
-rw-r--r-- 1 root     root      2868  2月 10 15:01 webalizer.hist

上記のようなレポートが作成されていれば、成功です。
OutputDir で指定したディレクトリを Apache や nginx に設定すれば、ブラウザ経由でレポートを閲覧できるようになります。

お疲れ様でした。