トップ |

2005年11月18日

Webalizer インストール ( UTF-8 化 )

本サイトの文字コードを全て UTF-8 にしたので、/etc/httpd/conf/httpd.conf 編集の際、AddDefaultCharset UTF-8 をコメントアウトせずに、レスポンスヘッダで文字コードが指定されるようにしてあります。
したら、Webalizer の吐き出す HTML ファイルが文字化けですわ。
あ、そだ、これ EUC だったっけね。
つーことで、UTF-8 にするように実行スクリプトを変更しました。Jcode と nkf を使ってます。

Webalizer のインストールに必要なgd-devel、libpng-develをインストール

[root@server ~]# yum -y install gd-devel libpng-devel

webalizer ダウンロード(最新版確認

[root@server ~]# wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz

展開

[root@server ~]# tar zxvf webalizer-2.01-10-src.tgz

展開先ディレクトリへ移動してインストール

[root@server ~]# cd webalizer-2.01-10
[root@server webalizer-2.01-10]# ./configure --enable-dns --with-dblib=/lib --mandir=/usr/share/man --with-language=japanese

[root@server webalizer-2.01-10]# make && make install

ホームディレクトリへ戻って、展開先ディレクトリとダウンロードしたファイルを削除

[root@server webalizer-2.01-10]# cd
[root@server ~]# rm -rf webalizer-2.01-10
[root@server ~]# rm -f webalizer-2.01-10-src.tgz

apache のアクセスログを日本語コードに変換するスクリプトを作成

[root@server ~]# vi jconvertlog.pl

#!/usr/bin/perl
use Jcode;
open (IN ,$ARGV[0]);
while (<IN>){
chomp $_;
   #URLエンコードを戻す
   $_ =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ego;
   #文字コードを調べる
   $code = getcode($_);
   #文字コードを正しく識別できない場合もしくはucs2とみなされた場合、utf8とみなす
   if(($code eq '') || ($code eq 'ucs2')){$code = 'utf8'};
   #文字コードをEUCに変換
   $_ = jcode($_, "$code")->euc;
   print "$_\n";
}
close (IN);
exit;

実行権付与

[root@server ~]# chmod 700 jconvertlog.pl

Webalizer 設定

Webalizer 設定ファイルをサンプルよりコピー

[root@server ~]# cp /etc/webalizer.conf.sample /etc/webalizer.conf

Webalizer設定ファイル編集(追加

[root@server ~]# vi /etc/webalizer.conf

アクセスログを指定

#LogFile /var/lib/httpd/logs/access_log
LogFile /var/log/httpd/jaccess_log

アクセスログ解析結果出力先を指定

#OutputDir /var/lib/httpd/htdocs/usage
OutputDir /var/www/usage

#Incremental no
Incremental yes

ホスト名を指定(タイトルやレポート内のリンクに使用される)

#HostName localhost
HostName www.wave440.com

#DNSCache dns_cache.db
DNSCache dns_cache.db

#DNSChildren    0
DNSChildren   10

Webalizer ページの文字化け対策

#HTMLHead <META NAME="author" CONTENT="The Webalizer">
HTMLHead <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

Warning: Truncating oversized request field というエラーメッセージが表示されないようにする

#ReallyQuiet no
ReallyQuiet yes

自サイト内からのアクセスはアクセス元として表示しない

#HideReferrer mrunix.net/
HideReferrer wave440.com

拡張子で除外指定

# Usually you want to hide these
‥‥‥‥
‥‥‥‥
HideURL *.css
HideURL *.ico
HideURL *.js
HideURL *.class

日本の検索エンジン追加

# The SearchEngine keywords allow specification of search engines and
# their query strings on the URL. These are used to locate and report
# what search strings are used to find your site. The first word is
# a substring to match in the referrer field that identifies the search
# engine, and the second is the URL variable used by that search engine
# to define it's search terms.
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 yahoo.co.jp q=
SearchEngine biglobe.ne.jp q=
SearchEngine msn.co.jp q=
SearchEngine search.msn.co.jp q=
SearchEngine cache.yahoofs.jp w=

‥‥‥‥
‥‥‥‥

アクセスログ解析結果出力先を作成

[root@server ~]# mkdir /var/www/usage

内部からのみアクセスできるようにする

Webalizer 解析結果アクセス設定ファイル新規作成

[root@server ~]# vi /etc/httpd/conf.d/webalizer.conf

Alias /usage /var/www/usage

<Location /usage>
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
   Allow from 192.168.1
   Allow from ::1
</Location>

Webサーバー設定反映

[root@server ~]# /etc/rc.d/init.d/httpd reload

Webalizerの実行スクリプト作成

[root@server ~]# vi webalizer.sh

#!/bin/bash

/root/jconvertlog.pl /var/log/httpd/access_log > /var/log/httpd/jaccess_log
webalizer
    # HTMLの文字コードをUTF-8に変換
    conf=/etc/webalizer.conf
    OutputDir=`grep ^OutputDir $conf | awk '{ print $2 }'`
    for html in ${OutputDir}/*.html
do
    nkf -w ${html} > ${html}.utf-8
    /bin/mv -f ${html}.utf-8 ${html}
done

実行権付与

[root@server ~]# chmod 700 webalizer.sh

Webalizer 実行

[root@server ~]# ./webalizer.sh

http://サーバー名/usage/ にアクセス

毎日00:00にWebalizer 実行スクリプトを実行するよう指定

[root@server ~]# crontab -e
00 00 * * * /root/webalizer.sh

投稿者 ゆう : 2005年11月18日 21:31 | カテゴリー CentOS (27)

PR 年間580円からの格安ドメイン取得サービス─ムームードメイン
★月額263円/容量1GB/機能満載! ロリポップ!レンタルサーバー ★
ホスティングするならリンククラブ!レンタルサーバならリンククラブ!


トラックバック

このエントリーのトラックバックURL:
http://www.wave440.com/blog/mt-trbk.cgi/159

コメントを投稿




保存しますか?