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 に必要となるライブラリなどをインストールします。

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

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

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

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

1$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
2$ gunzip GeoIP.dat.gz
3$ 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 にコンバートします。

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

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

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

Webalizer の動作を確認する

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

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

webalizer.conf を開きます。

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

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

1LogFile /var/log/httpd/access_log

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

1OutputDir      /var/www/webalizer

GeoDB / GeoIP を設定します。

1GeoDB           yes
2GeoDBDatabase   /usr/share/GeoDB/GeoDB.dat
3GeoIP           yes
4GeoIPDatabase   /usr/share/GeoIP/GeoIP.dat

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

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

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

1$ sudo mkdir /var/www/webalizer

解析の実行は

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

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

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

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

お疲れ様でした。