目次

ja-webalizerクイックセットアップ

2013年2月25日
久々再インストールやってはまったのでメモを残す。

FreeBSD/AMD64 9.1-RELEASEで説明。この資料作成時のwebalizerバージョンは2.23-05

インストール

/usr/ports/japanese/webalizer (ja-webalizer)をインストールする。実体は /usr/ports/www/webalizer になる。

定義ファイルの雛形が /usr/local/etc/ja-webalizer.conf-dist に作られるので、これを /usr/local/etc/ja-webalizer.conf にコピーする。 必要な箇所を修正。

たぶんeuc-jpで行くならHTMLHeadは修正不要かとおもう。でも最近だと検索エンジンの検索クエリにある文字列はutf8っぽいので、ログの一覧で文字化けする。

ヘッダファイルのエンコーディングを変更する。

さて。実際に ja-webalizer を実行してみると

文字化け

これは、日本語化の手法に問題があるため。

まだmake cleanしていなければ、/usr/ports/japanese/webalizer/work/webalizer-2.23-05を確認してみる。

「webalizer_lang.h → ./lang/webalizer_lang.japanese」に注目。つまり./lang ディレクトリ以下に言語毎のヘッダファイルが準備されている。

# pwd
/usr/ports/japanese/webalizer/work/webalizer-2.23-05
# ls -la
total 2358
drwxr-xr-x  3 root  wheel    1536 Feb 22 04:59 .
drwxr-xr-x  4 root  wheel    1024 Feb 22 05:01 ..
-rw-r--r--  1 root  wheel   25023 Oct  6  2010 CHANGES
-rw-r--r--  1 root  wheel   17990 Mar 22  2008 COPYING
-rw-r--r--  1 root  wheel     959 Jan  3  2011 Copyright
-rw-r--r--  1 root  wheel   14432 Jul  1  2008 DNS.README
-rw-r--r--  1 root  wheel   14685 Jul 10  2008 INSTALL
-rw-r--r--  1 root  wheel    4711 Feb 22 04:57 Makefile
-rw-r--r--  1 root  wheel    4070 Jan  3  2011 Makefile.in
-rw-r--r--  1 root  wheel    4388 Jan  3  2011 Makefile.std
-rw-r--r--  1 root  wheel  102611 Jan  3  2011 README
-rw-r--r--  1 root  wheel     988 Oct  9  2010 README.FIRST
-rw-r--r--  1 root  wheel   26170 Feb 22 04:57 config.log
-rwxr-xr-x  1 root  wheel   24648 Feb 22 04:57 config.status
-rwxr-xr-x  1 root  wheel  214646 Feb 22 04:57 configure
-rwxr-xr-x  1 root  wheel  214666 Jan  3  2011 configure.bak
-rw-r--r--  1 root  wheel   10362 Jan  3  2011 configure.in
-rw-r--r--  1 root  wheel    5678 May 27  2008 country-codes.txt
-rw-r--r--  1 root  wheel   28319 Feb 22 04:57 dns_resolv.c
-rw-r--r--  1 root  wheel   26965 Jan  3  2011 dns_resolv.c.orig
-rw-r--r--  1 root  wheel    1361 Jul  1  2008 dns_resolv.h
-rw-r--r--  1 root  wheel   20664 Feb 22 04:57 dns_resolv.o
-rw-r--r--  1 root  wheel   31192 Jan  3  2011 graphs.c
-rw-r--r--  1 root  wheel     414 Jun  1  2008 graphs.h
-rw-r--r--  1 root  wheel   42952 Feb 22 04:57 graphs.o
-rw-r--r--  1 root  wheel   32008 Jan 10  2011 hashtab.c
-rw-r--r--  1 root  wheel    4817 May 22  2008 hashtab.h
-rw-r--r--  1 root  wheel   17648 Feb 22 04:57 hashtab.o
-rwxr-xr-x  1 root  wheel    5585 Mar 22  2008 install-sh
drwxr-xr-x  2 root  wheel    1536 Feb 22 04:59 lang
-rw-r--r--  1 root  wheel    4271 Jul  1  2008 lang.h
-rw-r--r--  1 root  wheel    8636 Jan  3  2011 linklist.c
-rw-r--r--  1 root  wheel    2473 Dec  7  2010 linklist.h
-rw-r--r--  1 root  wheel    5952 Feb 22 04:57 linklist.o
-rw-r--r--  1 root  wheel    1478 Mar 22  2008 msfree.png
-rw-r--r--  1 root  wheel  108369 Feb 22 04:57 output.c
-rw-r--r--  1 root  wheel  107724 Jan  3  2011 output.c.orig
-rw-r--r--  1 root  wheel     390 Jul  1  2008 output.h
-rw-r--r--  1 root  wheel  115464 Feb 22 04:57 output.o
-rw-r--r--  1 root  wheel   21662 Jan  3  2011 parser.c
-rw-r--r--  1 root  wheel      96 Mar 22  2008 parser.h
-rw-r--r--  1 root  wheel   15640 Feb 22 04:57 parser.o
-rw-r--r--  1 root  wheel   26864 Jan  3  2011 preserve.c
-rw-r--r--  1 root  wheel    1466 Jun  2  2008 preserve.h
-rw-r--r--  1 root  wheel   27256 Feb 22 04:57 preserve.o
-rw-r--r--  1 root  wheel   32848 Feb 22 04:57 sample.conf
-rw-r--r--  1 root  wheel   32109 Jan  3  2011 sample.conf.orig
-rwxr-xr-x  1 root  wheel   22186 Feb 22 04:57 wcmgr
-rw-r--r--  1 root  wheel    4844 Jan  3  2011 wcmgr.1
-rw-r--r--  1 root  wheel   34142 Feb 22 04:57 wcmgr.c
-rw-r--r--  1 root  wheel   29958 Jan  3  2011 wcmgr.c.orig
-rw-r--r--  1 root  wheel   31056 Feb 22 04:57 wcmgr.o
-rwxr-xr-x  1 root  wheel  190772 Feb 22 04:59 webalizer
-rw-r--r--  1 root  wheel   35817 Feb 22 04:57 webalizer.1
-rw-r--r--  1 root  wheel   35797 Jan  3  2011 webalizer.1.bak
-rw-r--r--  1 root  wheel    1446 Jul  1  2008 webalizer.LSM
-rw-r--r--  1 root  wheel  104499 Feb 22 04:57 webalizer.c
-rw-r--r--  1 root  wheel  104490 Feb 22 04:57 webalizer.c.bak
-rw-r--r--  1 root  wheel  104426 Feb 22 04:57 webalizer.c.orig
-rw-r--r--  1 root  wheel   15408 Feb 22 04:57 webalizer.h
-rw-r--r--  1 root  wheel   15408 Oct  9  2010 webalizer.h.bak
-rw-r--r--  1 root  wheel  137336 Feb 22 04:59 webalizer.o
-rw-r--r--  1 root  wheel    1253 Mar 22  2008 webalizer.png
lrwxr-xr-x  1 root  wheel      35 Feb 22 04:58 webalizer_lang.h -> ./lang/webalizer_lang.japanese
lrwxr-xr-x  1 root  wheel       9 Feb 22 04:59 webazolver -> webalizer
#
# cd lang
# ls -l
total 1504
-rw-r--r--  1 root  wheel  39514 Jul  2  2008 webalizer_lang.albanian
-rw-r--r--  1 root  wheel  37874 Jul  2  2008 webalizer_lang.arabic
-rw-r--r--  1 root  wheel  37655 Apr 15  2011 webalizer_lang.catalan
-rw-r--r--  1 root  wheel  35384 Jul  2  2008 webalizer_lang.chinese
-rw-r--r--  1 root  wheel  35678 Jul  2  2008 webalizer_lang.croatian
-rw-r--r--  1 root  wheel  36561 Apr 30  2009 webalizer_lang.czech
-rw-r--r--  1 root  wheel  35948 Jul  2  2008 webalizer_lang.danish
-rw-r--r--  1 root  wheel  36881 Jul  2  2008 webalizer_lang.dutch
-rw-r--r--  1 root  wheel  35711 Jul  2  2008 webalizer_lang.english
-rw-r--r--  1 root  wheel  35953 Jul  2  2008 webalizer_lang.estonian
-rw-r--r--  1 root  wheel  36341 Jul  2  2008 webalizer_lang.finnish
-rw-r--r--  1 root  wheel  37584 Jul  2  2008 webalizer_lang.french
-rw-r--r--  1 root  wheel  36642 Jul  2  2008 webalizer_lang.galician
-rw-r--r--  1 root  wheel  40565 Jul  6  2008 webalizer_lang.german
-rw-r--r--  1 root  wheel  35755 Jul  2  2008 webalizer_lang.greek
-rw-r--r--  1 root  wheel  36611 Jul  2  2008 webalizer_lang.hungarian
-rw-r--r--  1 root  wheel  36105 Jul  2  2008 webalizer_lang.icelandic
-rw-r--r--  1 root  wheel  37427 Jul  2  2008 webalizer_lang.indonesian
-rw-r--r--  1 root  wheel  37153 Jul  2  2008 webalizer_lang.italian
-rw-r--r--  1 root  wheel  35353 Jul  2  2008 webalizer_lang.japanese
-rw-r--r--  1 root  wheel  35112 Jul  2  2008 webalizer_lang.korean
-rw-r--r--  1 root  wheel  36067 Jul  2  2008 webalizer_lang.latvian
-rw-r--r--  1 root  wheel  37068 Jul  2  2008 webalizer_lang.lithuanian
-rw-r--r--  1 root  wheel  37149 Jul  2  2008 webalizer_lang.malay
-rw-r--r--  1 root  wheel  37072 Jul  2  2008 webalizer_lang.norwegian
-rw-r--r--  1 root  wheel  37027 Jul  2  2008 webalizer_lang.polish
-rw-r--r--  1 root  wheel  36578 Jul  2  2008 webalizer_lang.portuguese
-rw-r--r--  1 root  wheel  37296 Jul  2  2008 webalizer_lang.portuguese_brazil
-rw-r--r--  1 root  wheel  36509 Jul  2  2008 webalizer_lang.romanian
-rw-r--r--  1 root  wheel  36597 Jul  2  2008 webalizer_lang.romanian-iso-8859-2
-rw-r--r--  1 root  wheel  37714 Jul  2  2008 webalizer_lang.russian
-rw-r--r--  1 root  wheel  35623 Jul  2  2008 webalizer_lang.serbian
-rw-r--r--  1 root  wheel  34958 Jul  2  2008 webalizer_lang.simplified_chinese
-rw-r--r--  1 root  wheel  36438 Jul  2  2008 webalizer_lang.slovak
-rw-r--r--  1 root  wheel  35614 Jul  2  2008 webalizer_lang.slovene
-rw-r--r--  1 root  wheel  37413 Jul  2  2008 webalizer_lang.spanish
-rw-r--r--  1 root  wheel  30195 Dec 15  2008 webalizer_lang.swedish
-rw-r--r--  1 root  wheel  35886 Jul  2  2008 webalizer_lang.thai
-rw-r--r--  1 root  wheel  36805 Jul  2  2008 webalizer_lang.turkish
-rw-r--r--  1 root  wheel  36205 Apr 15  2011 webalizer_lang.ukrainian
#

webalizer_lang.japanese は日本語文字列がeuc-jpのエンコーディングで記述されたファイルとなっていて、文字コード変換等を行われることなくそのまま出力されてしまう。

エンコーディングの変更

なので、utf-8で出力したければこのファイルをutf-8のエンコーディングに変更しコンパイルしなおせばいい。

# cat webalizer_lang.japanese |nkf -w -w80 > webalizer_lang.japanese.utf8
# cd ..
# rm webalizer_lang.h
# ln -s ./lang/webalizer_lang.japanese.utf8 webalizer_lang.h
# make clean
rm -f webalizer webazolver wcmgr *.o usage*.png daily*.png hourly*.png
rm -f ctry*.png *.html *.hist *.current core *.gif
# make install
  -- 中略 --
install  -s -o root -g wheel -m 555 webalizer /usr/local/bin/webalizer
install  -s -o root -g wheel -m 555 wcmgr /usr/local/bin/wcmgr
rm -f /usr/local/bin/webazolver
ln -s webalizer /usr/local/bin/webazolver
install  -o root -g wheel -m 444 webalizer.1 /usr/local/share/man/man1/webalizer.1
install  -o root -g wheel -m 444 wcmgr.1 /usr/local/share/man/man1/wcmgr.1
rm -f /usr/local/share/man/man1/webazolver.1
ln -s webalizer.1 /usr/local/share/man/man1/webazolver.1
install  -o root -g wheel -m 444 sample.conf /usr/local/etc/webalizer.conf.sample
# 

nkfのオプションは、utf-8のBOMなし出力を指定している。BOMありだとコンパイルに失敗してしまう。

結果は

文字化けなし

文字化けしなくなった。