アクセス解析「AWStats日本語版」のインストール方法メモ その2
→その1はこちら。
- Apache の設定
- ログ集計の設定
まず、Apache のログファイル名とログ形式を設定します。ファイル名は必ず「ホスト名-access_log」とし、形式は combined にしてください。
バーチャルホストを使用していない場合
# 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
AWStats 完全日本語版では、オリジナルの AWStats とは違い、一度 Web サーバのログを UTF-8 変換するスクリプトを通してから集計する必要があります(でないと『完全』日本語版にはならなくなる)。
まず、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 が適切な設定ファイルを読み込んで動いてくれます。
