jlb.jp/hsinstail8s/aws55

| <凡例> 赤字=入力する文字列 青字=表示される文字列(コンソール画面) 紫字=エディタ等で入力する文字列
|
■TL7Sの時にAwstats5のインストールを記載しましたが、その後も少ずつ本家のバージョンアップについていってました。
また、RH8.0の時にはAWStats5.4でしたが、今回は5.5に上がってましたので、TL8Sに戻ってきたこともあり余計な記述を整理して、改めて書き出してみました。
| 1.AWStats Ver 5.5 のインストール |
FTPで /usr/local/src/aws55 にファイルをコピーした後、インストールする想定で記述しています。
[root@hs8 root]# cd /usr/local/src/aws55
[root@hs8 aws55]# tar zxvf awstats-5.5.tgz
cd awstats-5.5/
[root@hs8 awstats-5.5]# which perl <--確認のみ。
/usr/bin/perl
| 2.Apache のログファイルフォーマットを "Combined" に変更する。 |
vi /etc/httpd/conf/httpd.conf
---------------------------------------------------------------------------
#
# CustomLog /var/log/httpd/access_log common <== 596行目あたり # を付ける
CustomLog /var/log/httpd/access_log combined <== 610行目あたり # を削除
---------------------------------------------------------------------------
| 3.CGIディレクトリィにNobodyが書き込めるようにする。 |
# chmod 757 /var/www/cgi-bin/
| 4.awstats.pl をCGIディレクトリィにコピーする。 |
[root@hs8 awstats-5.5]# cp wwwroot/cgi-bin/awstats.pl /var/www/cgi-bin/
(パーミッションは 555 のまま)
| 5.clock/ flags/ other/ browser/ cpu/ os/ mime/をディレクトリィごと icons へコピーする。 |
cd wwwroot/icon/
cp -r clock/ flags/ other/ browser/ cpu/ os/ mime/ /var/www/icons/
cd ../../
| 6./var/www/cgi-bin に aws/ ディレクトリーを作る。 |
これは、動作後に展開されるサブページ等を格納しておくために設定する。
mkdir /var/www/cgi-bin/aws/
| 7.wwwroot/cgi-bin/lang 他を ディレクトリーをディレクトリィごと cgi-bin へコピーする。 |
root@hs8 awstats-5.5]# pwd
/usr/local/src/aws55/awstats-5.5 <==今の位置
[root@hs8 awstats-5.5]#
cp -r wwwroot/cgi-bin/lang/ /var/www/cgi-bin/
cp -r wwwroot/cgi-bin/lib/ /var/www/cgi-bin/
cp -r wwwroot/cgi-bin/plugins/ /var/www/cgi-bin/
cp tools/awstats_buildstaticpages.pl /var/www/cgi-bin/
cp tools/awstats_exportlib.pl /var/www/cgi-bin/
cp tools/awstats_updateall.pl /var/www/cgi-bin/
cp tools/logresolvemerge.pl /var/www/cgi-bin/
cp tools/urlaliasbuilder.pl /var/www/cgi-bin/
| 8.以前から使っていた awstats.cron と decode.pl をCGIディレクトリィにコピーする。 |
ここは移行のため、TL7Sで使っていたファイルを、あらかじめ awstats-5.5/ に移していたという想定で説明しています。
[root@hs8 awstats-5.5]# cp awstats.cron /var/www/cgi-bin/
[root@hs8 awstats-5.5]# chmod 755 /var/www/cgi-bin/awstats.cron
[root@hs8 awstats-5.5]# cp decode.pl /var/www/cgi-bin/
[root@hs8 awstats-5.5]# chmod 755 /var/www/cgi-bin/decode.pl
[root@hs8 awstats-5.5]#
| 9.awstats.model.conf を awstats.conf と名前を変えてCGIディレクトリィにコピーする。 |
cd wwwroot/cgi-bin/
cp awstats.model.conf /var/www/cgi-bin/awstats.conf
cd ../../
vi /var/www/cgi-bin/awstats.conf
以下の8箇所変更します。(目安ですが、新しい行番号にしています。)
---------------------------------------------------------------------------
LogFile="/var/www/cgi-bin/access_log.euc"<--48行目あたり
DNSLookup=1 <--159行目あたり(1にしないと訪問者がIPアドレスのままとなる。)
SiteDomain="jlb.jp" <--128行目あたり
DirData= "/var/www/cgi-bin/aws" <--171行目あたり
DirIcons="/icons" <--193行目あたり s を追加する。
SkipHosts="192.168.1." <--395行目あたりに追加(ローカルのアクセスを記録しない)
SkipFiles="robots.txt$ favicon.ico$ /cgi-bin /icons" <--423行目あたり /cgi-bin を「記録しない」に追加する。(臨時に「cgi-bin を記録する」設定にすることが有ります) /icons 追加しました。
Lang="auto" <--742行目あたり。 "auto" が初期値。( auto のまま使用)
---------------------------------------------------------------------------
| 10.decode.pl の設定。 |
前項No8.で移行(TL7Sから)したファイルを使います。(新規でもOK)
TL7Sで使用した記述でも問題無いと思いますが、ここではRH8.0で、修正したファイルを使っています。
cd /var/www/cgi-bin/
[root@hs8 cgi-bin]# vi decode.pl
#!/usr/bin/perl -w # # 日本語版AWStats用検索キーワードデコードスクリプト # Perl5.8 にあわせて、13−17行目付近を修正した。 (2003/02/11 13:40) use Jcode; while(<STDIN>){ if (/http.*(biglobe|infoweb|yahoo|search\.goo|google|nifty|infoseek|msn| odn|lycos|ocn|excite\.co\.jp)/){ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack("H2", $1)/eg; if (length (getcode(\$_)) >= 3){ Jcode::convert(\$_,"euc"); }else{ Jcode::convert(\$_,"euc","utf8"); } s/ /+/g; #全角スペースを"+"に置換 s/\+\|\+/+/g; #"+|+"を"+"に置換 s/\|/+/g; #"|"がまだあったら"+"に置換 s/(Windows\s98.)\s(Win\s9x)/$2/g; # jlb 追加 print jcode(\$_)->tr('0-9', '0-9')->tr('A-Z','A-Z')->tr('a- z','a-z')->h2z; } else { s/(Windows\s98.)\s(Win\s9x)/$2/g; # jlb 追加 print; } }
このスクリプト実行には、 Jcode.pm のインストールが必要です。Jcode.pm の配布場所は
http://search.cpan.org/search?dist=Jcode
になるようです。
Jcode.pmのインストールは
[root@hs8 aws55]# tar zxvf Jcode-0.82.tar.gz
[root@hs8 aws55]# cd Jcode-0.82
perl Makefile.PL
make
make install
| 11.自動起動(1時間毎)の設定をする。 |
cd /var/www/cgi-bin/
[root@hs8 cgi-bin]# vi awstats.cron
ここでも以下のように RH8.0で使っていた awstats.cron を使いました。
#! /usr/bin/perl -w
# AWStats Ver.5.4用サンプルcronファイル
#
# ファイルパス等は自分の環境に合わせて書き直して下さい。
# httpのログファイルをデコードした上で一時ディレクトリに格納します。
# access_log.eucは一時的にデコードしたログを保存するファイルの名前です。
system("/var/www/cgi-bin/./decode.pl < /var/log/httpd/access_log > /var/www/cgi-bin/access_log.euc");
# awstats.plが切り詰めないオリジナルのログを切り詰めます。
open(LOG,"+</var/log/httpd/access_log");
truncate(LOG,0);
close(LOG);
# awstats.plを走らせ、htmlファイルを出力します。
# 必須ではありませんが、awstats.plを直接参照させるよりも、htmlに出力して表示す
# る方が、良好なパフォーマンスが得られます。
# 上記に書いてある awstats_buildstaticpages.pl を使うクローンだと、
# 時間がかかるため awstats.pl に変更した。2003/02/11
# awstats_buildstaticpages.pl は、初回のみ実行でよいはず。
# AWS の doc にも、そのように書いてあるみたい。
#
# system("/var/www/cgi-bin/awstats_buildstaticpages.pl -config=jlb.jp -update -awstatsprog=/var/www/cgi-bin/awstats.pl -dir=/var/www/cgi-bin/aws > /var/www/cgi-bin/awstats.1h.log");
system("/var/www/cgi-bin/awstats.pl -config=jlb.jp -update -dir=/var/www/cgi-bin/aws > /var/www/cgi-bin/awstats.1h.log");
# アクセス可能になるように出力したhtmlファイルの権限を変更
#system("chgrp apache /var/www/cgi-bin/aws/awstats.jlb.jp.html");
#system("chown apache /var/www/cgi-bin/aws/awstats.jlb.jp.html");
---------------------------------------------------------------------------
試しに、動作させて見ます。
[root@hs8 cgi-bin]# ./awstats.cron
後、クライアントから、最新のアクセス記録ができているか確認する。クライアントからのアクセスは、 http://jlb.jp/cgi-bin/awstats.pl と成ります。
また、関連ファイルは、 /var/www/cgi-bin/aws/ に作られます。
次に、修正したファイルを、コピーしてこのスクリプトが動き出します。
[root@hs8 cgi-bin]# cp awstats.cron /etc/cron.hourly/
| 12.画面の文字化けを修正する。 |
Ver4.0 以降は日本語にも対応していると言うことですが、一部文字化けする部分があります。
![]()
左のPageのところは、本来は「ページ/訪問」ですが「ぺーへ/北問」と成るため、暫定で 「 Page 」 に変えてみたところです。中と右は、修正前の画面出力で、北問に化けています。
vi awstats.pl
文字化け修正に関係有りませんが、左フレームサイズを縮小しました。$FRAMEWIDTH=200; <=== 35行目 260を200に
6392行目あたりに文字化けの原因(lc:ロワーケース)があります。
print "<TD><b>$TotalPages</b><br>($RatioPages ".lc($Message[56]."/" .$Message[12]).")</TD>";
print "<TD><b>$TotalHits</b><br>($RatioHits ".lc($Message[57]."/".$Message[12]).")</TD>";
print "<TD><b>".Format_Bytes(int($TotalBytes))."</b><br>($RatioBytes $Message[108]/".lc($Message[12]).")</TD>";
print "</TR>\n";
lc( ) 部分を削除します。
root の書き込み権を設定していない(555)ので、 [ESC] : w ! で書き込みして : q で終了。
次に表現の気になるところを修正します。(思いつきで増やしていきます)
vi /var/www/cgi-bin/lang/awstats-jp.txt
--------------------------------------------
PageCode=EUC-JP
message11=一意な訪問者数
message13=異なるキーワード
message35=最終のUpdate もし、1時間以上経過していましたら、<br>「最新の情報に更新」(IEの場合)を選択してください。 ==><br>インストールの経過は<a href="http://jlb.jp/hsinstall7/aws5/" target="_blank"><b>こちら</b></a>
message43=検索エンジンのキーフレーズ
message44=検索エンジンのキーワード
message54=高度なWeb統計のフリーリアルタイムログファイル分析
message57=ヒット
message103=異なったキーフレーズ
message108=KB
message109=MB
message110=GB
------------------------- 以下は awstats-en.txt から引用し、日本語を追記した
message999= は連番で続けること -------------
message111=Grabber
message112=Yes
message113=No
message114=WhoIs info
message115=OK
message116=Exit pages
message117=接続時間
message118=ウインドウを閉じる
message119=Bytes
message120=検索 キーフレーズ
message121=検索 キーワード
message122=異なった参照 検索エンジン
message123=異なった参照 サイト
message124=他のフレーズ
message125=匿名のユーザー
message126=参照 検索エンジン
message127=参照 サイト
--------------------------------------------
これも、root の書き込み権を設定していない(555)ので、 [ESC] : w ! で書き込みして終了。
Awstats Ver5(Ver4.0から?)は、日本語コードが「MS_Kanji」に成っています。
IE等からの検索キーワードの文字化けがそのまま発生したので、 EUC-JP として処理するように変更しています。その他には、マウスカーソルが項目の上に行ったときに、説明のウィンドウが出現しますが、それは英語のままです。
あまり不自由はしませんが変更する場合は、 vi /var/www/cgi-bin/lang/awstats-tt-jp.txt を開いて書き換えれば、日本語表記にできます。
| 13.Logの設定。 |
これもTL7Sの時と同じように、プライベートアドレスからのアクセスを Apache のログに記録しない設定にします。(192.168.1.xxx の場合)
[root@hs8 /root]# vi /etc/httpd/conf/httpd.conf
SetEnvIf Remote_Addr 192.168.1. no_log <==609行目に追加
CustomLog /var/log/httpd/access_log combined env=!no_log
--以上--