アクセス解析「AWStats日本語版」のインストール方法メモ その2
アクセス解析「AWStats日本語版」のインストール方法メモ その2
→その1はこちら。
- Apache の設定 まず、Apache のログファイル名とログ形式を設定します。ファイル名は必ず「ホスト名-access_log」とし、形式は combined にしてください。
- ログ集計の設定 AWStats 完全日本語版では、オリジナルの AWStats とは違い、一度 Web サーバのログを UTF-8 変換するスクリプトを通してから集計する必要があります(でないと『完全』日本語版にはならなくなる)。
バーチャルホストを使用していない場合
# vi /etc/httpd/conf/httpd.conf
CustomLog logs/access_log combined env=!no_log
↓
CustomLog logs/blog.96q.org-access_log combined
バーチャルホストを使用している場合
# vi /etc/httpd/conf.d/virtualhost.conf
<VirtualHost *:80>
ServerName blog.96q.org
:
CustomLog logs/blog.96q.org-access_log combined ←ログをこのように指定
</VirtualHost>
Web から AWStats のレポートにアクセスできるように設定します。
# vi /etc/httpd/conf.d/awstats.conf
#
# Directives to allow use of AWStats as a CGI
#
Alias /classes "/usr/local/awstats/wwwroot/classes/"
Alias /icon "/usr/local/awstats/wwwroot/icon"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory “/usr/local/awstats/wwwroot”>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Apache に設定を反映します。
# /etc/init.d/httpd reload
まず、UTF-8 変換スクリプトを自分の環境に合わせて修正します。
# vi /usr/local/awstats/wwwroot/cgi-bin/utf8_decode.pl
$Myhost = "bflets\.dyndns\.org"; # 自ホストのchcheかの判定用.
↓
$Myhost = "96q\.org"; # 自ホストのchcheかの判定用. ←自分のドメイン名に変更する
次に Apache のログを UTF-8 変換スクリプトに通し、AWStats に集計させるスクリプトを作成します。
# vi /usr/local/bin/awstats-update
#!/usr/bin/env ruby CONF = "/etc/awstats" LOG_DIR = "/var/log/httpd" TMP_DIR = "/tmp/hl" UTF8_DECODE = "/usr/local/awstats/wwwroot/cgi-bin/utf8_decode.pl" AWSTATS = "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl" Dir.mkdir(TMP_DIR, 0700) begin Dir.glob(CONF + "/*") do |var| if File.basename(var, ".conf") =~ /awstats\.(.+)/ domain = $1; log = "#{LOG_DIR}/#{domain}-access_log" tmplog = "#{TMP_DIR}/#{domain}-log.utf8" system("#{UTF8_DECODE} < #{log} > #{tmplog}") begin File.truncate(log, 0) system("#{AWSTATS} -config=#{domain} -update") ensure File.unlink(tmplog) end end end ensure Dir.rmdir(TMP_DIR) end
作成したスクリプトに実行権限を与えます。
# chmod +x /usr/local/bin/awstats-update
cron で自動的に実行されるように crontab を設定します。
# crontab -e
以下を追加。
00 * * * * /usr/local/bin/awstats-update > /dev/null
これで設定は完了です。ログは1時間ごとに集計されて http://xxx.xxx.xxx/awstats/awstats.pl で参照することができます。複数のホストについて設定した場合は、ホスト名を変更してアクセスするだけで自動的に AWStats が適切な設定ファイルを読み込んで動いてくれます。


