「Webalizer」の設定
ライブラリのインストール

「Webalizer」に必要なライブラリをインストールします。
必要なものは
「GDライブラリ」
「PNGライブラリ」
です。

また、解析結果をIPアドレスではなく、ホスト名に変換する場合は
「BerkeleyDB」
も必要になります。

ここでは、解析結果をホスト名に変換することを前提にインストールします。
なお、「BerkeleyDB」のインストール方法はこちらを参照して下さい。

PNGライブラリのインストール
Solaris# wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/libpng-1.2.8-sol10-intel-local.gz
 <= PNGライブラリのダウンロード
Solaris# gunzip libpng-1.2.8-sol10-intel-local.gz <= ダウンロードしたファイルの展開
Solaris# pkgadd -d libpng-1.2.8-sol10-intel-local |& tee pkg-libpng.log <= パッケージのインストール
Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <= 空Enter

Do you want to install these conflicting files [y,n,?,q] <= y


GDライブラリのインストール
Solaris# wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/gd-2.0.33-sol10-intel-local.gz
 <= GDライブラリのインストール
Solaris# gunzip gd-2.0.33-sol10-intel-local.gz <= ダウンロードしたファイルの展開
Solaris# pkgadd -d gd-2.0.33-sol10-intel-local |& tee pkg-gd.log <= パッケージのインストール

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]: <= 空Enter
「Webalizer」のインストール
Solaris# mkdir /usr/local/src/webalizer <= 作業用ディレクトリの作成
Solaris# chmod 777 /usr/local/src/webalizer <= 作業用ディレクトリのパーミッション変更
Solaris# exit <= 一般ユーザになる
Solaris% cd /usr/local/src/webalizer <= 作業用ディレクトリへ移動
Solaris% wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tar.bz2
 <= 「Webalizer」のソースをダウンロード
Solaris% bunzip2 -c webalizer-2.01-10-src.tar.bz2 | tar xf - <= ダウンロードしたファイルの展開
Solaris% cd webalizer-2.01-10 <= 展開したディレクトリに移動

Solaris% env CFLAGS=-O3 LDFLAGS="-L/opt/sfw/lib -R/opt/sfw/lib" ./configure \
--with-etcdir=/usr/local/etc \
--with-db=/usr/local/BerkeleyDB.4.3/include \
--with-dblib=/usr/local/BerkeleyDB.4.3/lib \
--enable-dns \
--with-language=japanese |& tee configure.log

Solaris% vi dns_resolv.c <= ファイルの編集
#ifdef HAVE_DB_185_H
#include <db_185.h>                            /* on my RH6.0 system ?!?   */
#else
#include <db.h>                                /* DB header ****************/
#endif /* HAVE_DB_185_H */
↓
#include <db_185.h>                            /* on my RH6.0 system ?!?   */ <= <db_185.h>を読み込むように編集


Solaris% gmake |& tee make.log <= コンパイル
Solaris% su <= スーパーユーザになる
Password: <= パスワードの入力
Solaris# gmake install |& tee make-install.log <= インストール
日本語コード変換スクリプトの作成

アクセスログの日本語が文字化けするのを防ぐため、 アクセスログの日本語コードを変換するスクリプトを作成します。
ここで、日本語コードの変換にPerlのバージョンが5.8以前の場合はJcodeを用い、 Perl5.8以降の場合はEncodeを用います。
ただ、自分の環境ではPerlのバージョンが5.8以降なのですが、 Encodeを利用すると検索サイトによっては文字化けが発生しましたので、Jcodeを用いています。
なお、JcodeやEncodeのインストール方法については、 こちらを参照にモジュールをインストールして下さい。

Perl5.8以前の場合
Solaris# vi /root/jconvertlog.pl <= スクリプトファイルの新規作成
#!/usr/bin/perl

use Jcode;

open (IN ,$ARGV[0]);
while (<IN>){
    $_ =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    Jcode::convert(\$_,'euc');
    print $_;
}
close (IN);
exit;


Perl5.8以降の場合
Solaris# vi /root/jconvertlog.pl <= スクリプトファイルの新規作成
#!/usr/bin/perl

use Encode qw/ from_to /;

open (IN ,$ARGV[0]);
while (<IN>){
    $_ =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
    from_to( $_, 'utf-8', 'euc-jp' );
    print $_;
}
close (IN);
exit;

作成したスクリプトファイルに実行権限を与えます。

Solaris# chmod 755 /root/jconvertlog.pl
起動スクリプトの作成

アクセスログの日本語コードの変換を行うスクリプトを実行してから 「webalizer」を実行する為のスクリプトを作成します。

Solaris# vi /root/webalizer.sh <= スクリプトファイルの新規作成
#!/sbin/sh

/root/jconvertlog.pl /var/apache2/logs/access_log > /var/apache2/logs/jaccess_log
/usr/local/bin/webalizer -c /usr/local/etc/webalizer.conf > /dev/null 2>&1

作成したスクリプトファイルに実行権限を与えます。

Solaris# chmod 755 /root/webalizer.sh
解析結果の出力の設定

ディレクトリの作成

解析結果を格納するディレクトリを作成します。

Solaris# mkdir /var/apache2/webalizer

「Apache」の設定

解析結果を格納するディレクトリにアクセスできるように「Apache」を設定します。

Solaris# vi /etc/apache2/httpd.conf <= 設定ファイルの編集
Alias /webalizer "/var/apache2/webalizer/" <= 追加

「Apache」を再起動し、設定を反映させます。

Solaris# svcadm restart svc:/network/http:apache2
「Webalizer」の設定
Solaris# cp /usr/local/etc/webalizer.conf.sample /usr/local/etc/webalizer.conf
 <= サンプル設定ファイルのコピー
Solaris# vi /usr/local/etc/webalizer.conf <= 設定ファイルを編集
#LogFile        /var/lib/httpd/logs/access_log
↓
LogFile        /var/apache2/logs/jaccess_log <= Logファイルを指定

#OutputDir      /var/lib/httpd/htdocs/usage
↓
OutputDir      /var/apache2/webalizer <= 解析結果の出力先を指定

#HostName       localhost
↓
HostName       Solaris.crimson-snow.net <= ホスト名を指定

#DNSCache       dns_cache.db
↓
DNSCache       dns_cache.db <= コメント解除(DNSの逆引きによる名前解決ファイル名)

#DNSChildren    0
↓
DNSChildren    10 <= DNSCache の指定時に使用される、逆引き処理でのプロセス数

#HideReferrer   mrunix.net/
↓
HideReferrer   crimson-snow.net <= 自サイト内からのアクセスはアクセス元として表示しない

日本語の検索エンジンを追加
SearchEngine    google.co.jp         q=
SearchEngine    yahoo.co.jp          p=
SearchEngine    search.biglobe.ne.jp q=
SearchEngine    infoseek.co.jp       qt=
SearchEngine    search.nifty.com     Text=
SearchEngine    goo.ne.jp            MT=
SearchEngine    excite.co.jp         search=
SearchEngine    msn.co.jp            q=
SearchEngine    jp.aol.com           query=
SearchEngine    biglobe.ne.jp        q=
SearchEngine    nifty.com            Text=
SearchEngine    livedoor.com         q=
SearchEngine    ask.jp               q=
SearchEngine    jword.jp             name=
SearchEngine    fresheye.com         kw=
ここまで
SearchEngine    yahoo.com       p=
SearchEngine    altavista.com   q=
SearchEngine    google.com      q=
SearchEngine    eureka.com      q=
SearchEngine    lycos.com       query=
SearchEngine    hotbot.com      MT=
SearchEngine    msn.com         MT=
SearchEngine    infoseek.com    qt=
SearchEngine    webcrawler      searchText=
SearchEngine    excite          search=
SearchEngine    netscape.com    search=
SearchEngine    mamma.com       query=
SearchEngine    alltheweb.com   query=
SearchEngine    northernlight.com  qr=
「Webalizer」の実行

作成した起動スクリプトを実行し、「Webalizer」を実行します。

Solaris# /root/webalizer.sh

http://サーバのIPアドレス/webalizer/ とアクセスしてページが表示されれば問題ありません。

「Webalizer」の自動実行

毎日0:00に自動実行するようにcronに登録します。

Solaris# crontab -e <= cron編集
00 00 * * * /root/webalizer.sh
▲ページのトップへ