AWStats 6.7

(最終更新日時:2008/02/14 12:43:54)

ダウンロード

AWStats Last stableawstats-6.7.tar.gz
検索文字列の日本語化のため
AWStatsをFreeBSDで動かすawstats67t_jpn.zip

インストール

/usr/local/srcディレクトリでアーカイブを展開し、ファイルをコピーします。
# cd /usr/local/src
# tar zxvf ダウンロード先/awstats-6.7.tar.gz

# mkdir /home/www/awstats                                 AWStatsのWebサーバフォルダを作成します
# mkdir /home/www/awstats/icon
# cp -R awstats-6.7/wwwroot/cgi-bin/* /home/www/awstats/
# cp -R awstats-6.7/wwwroot/icon/*    /home/www/awstats/icon

# mkdir /etc/awstats                                      設定ファイルを格納するディレクトリを作成します
# unzip -ja ダウンロード先/awstats67t_jpn.zip AWStats67t_Jpn/tools/utf8_decode.pl -d /etc/awstats
# chmod +x /etc/awstats/utf8_decode.pl

設定

apacheの各バーチャルホスト設定にAWStatsの設定を追加します。
# vi /usr/local/apache2/conf/extra/vhosts/www.system-act.com.conf
Alias /awstats   "/home/www/awstats"
<Directory       "/home/www/awstats">
  BrowserMatch   "MSIE" AuthDigestEnableQueryStringHack=On  # IE6までの不具合回避

  # AWStatsの実行ディレクトリを全ホスト共通にしているため .htaccess を使用せず、ここで定義しています
  AuthType        Digest
  AuthName       "AWStats"
  AuthUserFile    /etc/.htdigest                          # httpユーザ認証用ファイル
  AuthGroupFile   /etc/.htgroup                           # httpグループ定義ファイル
  Require         group www.system-act.com                # グループに存在するユーザのアクセスを許可する

  DirectoryIndex  awstats.pl                              # ファイル名省略時の表示ファイルを指定します
  Options         ExecCGI                                 # CGIの実行を許可します
  AddHandler      cgi-script .pl
  SetEnv          AWSTATS_CONFIG www.system-act.com       # AWStatsのconfigファイルを当該ホストのものに強制します
</Directory>

# vi /usr/local/apache2/conf/extra/vhosts/www.nekojara.com.conf
Alias /awstats   "/home/www/awstats"
<Directory       "/home/www/awstats">
  BrowserMatch   "MSIE" AuthDigestEnableQueryStringHack=On
  AuthType        Digest
  AuthName       "AWStats"
  AuthUserFile    /etc/.htdigest
  AuthGroupFile   /etc/.htgroup
  Require         group www.nekojara.com
  DirectoryIndex  awstats.pl
  Options         ExecCGI
  AddHandler      cgi-script .pl
  SetEnv          AWSTATS_CONFIG www.nekojara.com
</Directory>

.htdigest および .htgroup ファイルを作成します。
# /usr/local/apache2/bin/htdigest -c /etc/.htdigest "AWStats" user1
Adding password for user1 in realm AWStats.
New password: パスフレーズ
Re-type new password: パスフレーズ(再入力)

# /usr/local/apache2/bin/htdigest    /etc/.htdigest "AWStats" user2
Adding password for user2 in realm AWStats.
New password: パスフレーズ
Re-type new password: パスフレーズ(再入力)

# -c は /etc/.htdigest にユーザを追加する際にはつけないでください。
# "AWStats" は AuthName と同じものにします。これが違っているとユーザが一致してもログインできません。

# chmod 604 /etc/.htdigest

# vi /etc/.htgroup

www.system-act.com: user1                                 グループに属するユーザーを追加します
www.nekojara.com:   user2

# chmod 604 /etc/.htgroup
AWStats の設定ファイルを作成します。
# mkdir /var/awstats                                      分析結果の格納ディレクトリを作成します
# cp /home/www/awstats/awstats.model.conf /etc/awstats/awstats.www.system-act.com.conf

# 作成するファイル名は、
#   awstats            実行CGIファイル(awstats.pl)のファイルボディ名
#   www.system-act.com apacheのバーチャルホスト設定で指定した環境変数 AWSTATS_CONFIG の内容
#   conf               固定
# から構成されます。

# vi /etc/awstats/awstats.www.system-act.com.conf

     :
LogFile="./utf8_decode.pl < /var/log/httpd/vhosts/system-act.com/www/access_log |"
(Apacheのログファイルを指定します。ログの記録形式は combined にしておきます)
     :
SiteDomain="www.system-act.com"                           # 分析対象Webサーバのドメイン名
     :
HostAliases="localhost 127.0.0.1"                         # SiteDomain以外に分析対象とするホスト名
     :
DNSLookup=1
(ドメイン/国別などの統計情報を取得するため、DNSの逆引きを行います)
     :
DirData="/var/awstats"                                    # 分析結果などのファイルを格納するディレクトリ
     :
DirCgi="/awstats"                                         # 実行CGIファイル(awstats.pl)の存在するディレクトリ
     :
DirIcons="/awstats/icon"                                  # アイコンファイルの存在するディレクトリ
     :
AllowFullYearView=3                                       # 年間統計の表示を許可します
# cp /home/www/awstats/awstats.model.conf /etc/awstats/awstats.www.nekojara.com.conf
# vi /etc/awstats/awstats.www.nekojara.com.conf

     :
LogFile="./utf8_decode.pl < /var/log/httpd/vhosts/nekojara.com/www/access_log |"
     :
SiteDomain="www.nekojara.com"
     :
HostAliases="localhost 127.0.0.1"
     :
DNSLookup=1
     :
DirData="/var/awstats"
     :
DirCgi="/awstats"
     :
DirIcons="/awstats/icon"
     :
AllowFullYearView=3

日本語化パッチ

下記についてのパッチを適用します。
# cpan Jcode                                              Perlモジュール Jcode をインストールします

# cd /home/www/awstats
# unzip -jfa ダウンロード先awstats67t_jpn.zip AWStats67t_Jpn/wwwroot/cgi-bin/lib/search_engines.pm -d lib
# unzip -jfa ダウンロード先awstats67t_jpn.zip AWStats67t_Jpn/wwwroot/cgi-bin/lib/robots.pm         -d lib

# wget http://www.system-act.com/archives/patches/awstats-6.7.patch
# patch -p0 < awstats-6.7.patch
# rm -f awstats-6.7.patch                                 パッチファイルを削除します

分析ファイルの作成

初回のみ、logrotate されたファイルから分析ファイルを作成します。
# cd /etc/awstats
# for HOST in \
>   "system-act.com" \
>   "nekojara.com"
> do
>   echo "\$Myhost = \"www\.${HOST//\./\.}\";" > awstats_host.pl
>   for NUM in `seq 4 -1 1`
>   do
>     ./utf8_decode.pl < /var/log/httpd/vhosts/$HOST/www/access_log.$NUM > access_log_utf8
>     /home/www/awstats/awstats.pl -config=www.$HOST -update -LogFile=access_log_utf8
>   done
>   /home/www/awstats/awstats.pl -config=www.system-act.com -update
> done
cron に登録し、1時間ごとに分析ファイルが更新されるようにします。
# vi /etc/cron.hourly/awstats

#!/bin/sh

cd /etc/awstats
for HOST in \
  "www.system-act.com" \
  "www.nekojara.com"
do
  echo "\$Myhost = \"${HOST//\./\.}\";" > awstats_host.pl
  /home/www/awstats/awstats.pl -config=$HOST -update > /dev/null
done

# chmod +x /etc/cron.hourly/awstats
logrotate 時に分析ファイルが更新されるようにします。
# vi /etc/logrotate.d/httpd

     :
  postrotate
    /usr/local/apache2/bin/apachectl graceful || true
    cd /etc/awstats
    for HOST in \
      "system-act.com" \
      "nekojara.com"
    do
      echo "\$Myhost = \"www\.${HOST//\./\.}\";" > awstats_host.pl
      ./utf8_decode.pl < /var/log/httpd/vhosts/$HOST/www/access_log.1 > access_log_utf8
      /home/www/awstats/awstats.pl -config=www.$HOST -update -LogFile=access_log_utf8 > /dev/null
    done

a System House to build an Accounting system by the Computer Technology