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ありだとコンパイルに失敗してしまう。
結果は
文字化けしなくなった。