Mac OS XにWebalizerをインストール → DNSCacheでハマる


webalizer.png

Mac OS XにWebalizerをインストールしてみた日記。とりあえずいつも通りMacPortsを使ってみる。

$ sudo port install webalizer

すると/opt/local/etc/webalizer.conf.sampleというサンプルの設定ファイルが出来ているので、それを見ながらオリジナルのファイルを作成。設定ファイル内のコメントと、ここら辺を見て書いた。

Webalizer について
http://www.sea-bird.org/doc/Solaris8/webalizer2.html
5-7. Webalizer-ログ解析ソフト: 自宅サーバプロジェクト
http://saba.nitty-gritty.org/400web/55_webalizer.html

設定内容は↑のリンク集そのまんまだが、注意すべきところは次の3行。

HTMLHead    <META http-equiv="content-type" content="text/html; charset=euc-jp">
DNSCache    /var/log/apache2/dns_cache.db
DNSChildren 10

まず1行目のHTMLHeadだが、これは作成される解析ページに追加する<meta>タグを指定する。メッセージを日本語にする(方法は下に書く)時には、このタグがないと文字化けしてしまう。

2,3行目はDNSキャッシュの指定だ。一度調べたホスト名をデータベース化しておくことで、解析ページ作成にかかる時間を短縮する。便利なオプションなので必ず指定しておきたい。……のだが、早速実行してみるとこれが問題だった。

$ webalizer -c webalizer.conf
Warning: Invalid keyword 'DNSCache' (blog.conf)
Warning: Invalid keyword 'DNSChildren' (blog.conf)
# 以下通常のメッセージ

上記のような警告メッセージが出力されて、DNSCacheが正常に働かない。ググると回答があった。

Warning: Invalid keyword ‘DNSCache’ (webalizer.conf) in MacPorts (Mac OS X) » Ruben’s blog
http://rubenlaguna.com/wp/2009/03/20/warning-invalid-keyword-dnscache-webalizerconf-in-macports-mac-os-x/

つまり、一度Webalizerをアンインストールして、コンパイルオプションを変更した上で再インストールすればいいらしい。

# アンインストール
$ sudo port uninstall webalizer
# コンパイルオプションを変更
$ vim /opt/local/var/macports/sources/rsync.macports.org/release/ports/www/webalizer/Portfile

次のように編集する。(ハイライトした部分を追加する)

configure.args  --mandir=${prefix}/share/man \
--enable-dns \
--with-language=japanese \
--with-etcdir=${prefix}/etc \
--with-gdlib=${prefix}/lib \

再インストールする前に、依存するプログラム(Berkeley DB)をインストールしておく。

$ sudo port install db47
$ sudo port clean webalizer
$ sudo port install webalizer

これで、冒頭に挙げたSSのような、日本語メッセージを使ったWebalizerがインストールできた。

コメントを残す