| トップ | Solaris | FreeBSD | Gentoo | CentOS | Fedora | Windows | Tips | 自宅サーバの動作確認 | サイト内検索(Namazu) | サイト内検索(HE) |
標準のままでは「Webalizer」は日本語に対応していません。
そこで、ここでは「Webalizer」を日本語へ対応させます。
日本語に対応させるためにはソースを入手する必要があります。
「Webalizer」をソースからインストールする為、依存関係のあるものを先にインストールします。
「webapp-config」のインストール Gentoo ~ # emerge app-admin/webapp-config 「media-libs/gd」のインストール Gentoo ~ # emerge media-libs/gd |
「Webalizer」のインストール
「Webalizer」を日本語に対応させる為、ソースをダウンロードします。
Gentoo ~ # emerge -f webalizer <= 「Webalizer」のソースをダウンロード Gentoo ~ # cd /usr/portage/distfiles <= ソースをダウンロードしたディレクトリへ移動 Gentoo ~ # tar xjf webalizer-2.01-10-src.tar.bz2 <= ダウンロードしたソースファイルの展開 Gentoo ~ # cd webalizer-2.01-10 <= 展開したディレクトリへ移動 Gentoo ~ # ./configure --with-language=japanese --enable-dns 2>&1 | tee configure.log Gentoo ~ # make 2>&1 | tee make.log <= コンパイル Gentoo ~ # mkdir -p /usr/local/man/man1 <= マニュアル用のディレクトリの作成 Gentoo ~ # make install 2>&1 | tee make-install.log <= インストール |
アクセスログの日本語が文字化けするのを防ぐため、
アクセスログの日本語コードを変換するスクリプトを作成します。
ここで、日本語コードの変換にPerlのバージョンが5.8以前の場合はJcodeを用い、
Perl5.8以降の場合はEncodeを用います。
なお、JcodeやEncodeのインストール方法については、
こちらを参照にモジュールをインストールして下さい。
Perl5.8以前の場合
Gentoo ~ # vi /root/jconvertlog.pl <= スクリプトファイルの新規作成
#!/usr/local/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以降の場合
Gentoo ~ # vi /root/jconvertlog.pl <= スクリプトファイルの新規作成
#!/usr/local/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;
|
作成したスクリプトファイルに実行権限を与えます。
Gentoo ~ # chmod 755 /root/jconvertlog.pl |
アクセスログの日本語コードの変換を行うスクリプトを実行してから 「webalizer」を実行する為のスクリプトを作成します。
Gentoo ~ # vi /root/webalizer.sh <= スクリプトファイルの新規作成 #!/bin/sh /root/jconvertlog.pl /var/log/apache2/access_log > /var/log/apache2/jaccess_log /usr/local/bin/webalizer -c /etc/webalizer.conf > /dev/null 2>&1 |
作成したスクリプトファイルに実行権限を与えます。
Gentoo ~ # chmod 755 /root/webalizer.sh |
ディレクトリの作成
解析結果を格納するディレクトリを作成します。
Gentoo ~ # mkdir /var/www/localhost/webalizer |
「Apache」の設定
解析結果を格納するディレクトリにアクセスできるように「Apache」を設定します。
Gentoo ~ # vi /etc/apache2/httpd.conf <= 設定ファイルの編集 Alias /webalizer/ "/var/www/localhost/webalizer/" <= 追加 |
「Apache」を再起動し、設定を反映させます。
Gentoo ~ # /etc/init.d/apache2 restart |
Gentoo ~ # cp -p /etc/webalizer.conf.sample /etc/webalizer.conf <= サンプル設定ファイルのコピー Gentoo ~ # vi /etc/webalizer.conf <= 設定ファイルの編集 #LogFile /var/lib/httpd/logs/access_log ↓ LogFile /var/log/apache2/jaccess_log <= 日本語コード変換スクリプトと「Webalizer」の起動スクリプトによって作成されたアクセスログを指定 #OutputDir /var/lib/httpd/htdocs/usage ↓ OutputDir /var/www/localhost/webalizer <= 解析結果の出力先を指定 #HostName localhost ↓ HostName Gentoo.crimson-snow.net <= ホスト名を指定 #DNSCache dns_cache.db ↓ DNSCache dns_cache.db <= コメント解除(DNSの逆引きによる名前解決ファイル名) #DNSChildren 0 ↓ DNSChildren 10 <= DNSCache の指定時に使用される、逆引き処理でのプロセス数 #HTMLHead <META NAME="author" CONTENT="The Webalizer"> ↓ HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=euc-jp"> <= 「Webalizer」のページの文字化け対策 #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 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」を実行します。
Gentoo ~ # /root/webalizer.sh |
http://サーバのIPアドレス/webalizer/
とアクセスしてページが表示されれば問題ありません。
「Webalizer」の自動実行
「Webalizer」を毎日0:00に自動実行するようにします。
Gentoo ~ # crontab -e <= cronの編集 00 00 * * * /root/webalizer.sh <= 追加 |
ログローテーションに合わせた実行
ログローテーションのタイミングでも上記で作成したスクリプトを実行するようにします。
また、ログ解析は access_log のみ行う為、その他のログローテーション時には実行しないようにします。
Gentoo ~ # vi /etc/logrotate.d/apache2 <= 設定ファイルの編集
access_log のみスクリプトを実行するように以下を追加
/var/log/apache2/access_log {
missingok
notifempty
prerotate
/root/webalizer.sh
endscript
postrotate
/etc/init.d/apache2 reload > /dev/null 2>&1 || true
endscript
}
ここまで
/var/log/apache2/*log {
↓
/var/log/apache2/error_log /var/log/apache2/spam_log /var/log/apache2/worm_log { <= 変更
missingok
notifempty
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null 2>&1 || true
endscript
}
|