### mod_perl のインストール
yum -y install mod_perl # Apache は http://pooh.gr.jp/?p=8140 を参考に設定済みであることを前提。
### AWStats ソースの展開
wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz tar zxf awstats-7.0.tar.gz -C /usr/local chown -R root:root /usr/local/awstats-7.0 ln -s /usr/local/awstats-7.0 /usr/local/awstats
### AWStats 設定ファイル
chmod 644 /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf mv /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf.orig cp -a /usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf.orig /usr/local/awstats/wwwroot/cgi-bin/awstats.pooh.gr.jp.conf
# awstats.[SiteDomein].conf sed -i \ -e 's/^LogFile="\/var\/log\/httpd\/mylog.log"$/LogFile="\/var\/log\/httpd\/access_log"/' \ -e 's/^SiteDomain=""$/SiteDomain="pooh.gr.jp"/' \ -e 's/^HostAliases=.*$/HostAliases="REGEX[^.*allekto\\.pooh\\.gr\\.jp$]"/' \ -e 's/^DNSLookup=2$/DNSLookup=1/' \ -e 's/^DirCgi="\/cgi-bin"$/DirCgi="\/awstats"/' \ -e 's/^DirIcons="\/icon"$/DirIcons="\/awstatsicons"/' \ -e 's/^URLWithQuery=0$/URLWithQuery=1/' \ -e 's/^StyleSheet=""$/StyleSheet="\/awstatscss\/awstats_default.css"/' \ /usr/local/awstats/wwwroot/cgi-bin/awstats.pooh.gr.jp.conf
# LAMP 系の CMS では URLWithQuery=1 が必須。URLWithQuery=0 だと “index.php?p=1” と “index.php?p=2” が同じ “index.php” ページとして集計されてしまう。
### Apache 認証
/usr/bin/htpasswd -c /etc/httpd/conf.d/.htpasswd-awstats natsu # New password: # Re-type new password: chmod 640 /etc/httpd/conf.d/.htpasswd-awstats chgrp apache /etc/httpd/conf.d/.htpasswd-awstats
### Apache 設定ファイル
{ echo -e 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"' echo -e 'Alias /awstatscss "/usr/local/awstats/wwwroot/css/"' echo -e 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"' echo -e 'ScriptAlias /awstats "/usr/local/awstats/wwwroot/cgi-bin/"' echo -e '' echo -e '<Directory "/usr/local/awstats/wwwroot">' echo -e ' Options ExecCGI FollowSymLinks' echo -e ' Order allow,deny' echo -e ' Allow from all' echo -e ' AuthUserFile /etc/httpd/conf.d/.htpasswd-awstats' echo -e ' AuthName "RESTRICTED"' echo -e ' AuthType Basic' echo -e ' require valid-user' echo -e ' <Files ~ "\.pl$">' echo -e ' SetHandler perl-script' echo -e ' PerlResponseHandler ModPerl::Registry' echo -e ' PerlSendHeader On' echo -e ' </Files>' echo -e '</Directory>' echo -e '' echo -e 'RewriteEngine on' echo -e 'RewriteRule ^/awstatsclasses/(.*) https://%{HTTP_HOST}/awstatsclasses/$1 [R,L]' echo -e 'RewriteRule ^/awstatscss/(.*) https://%{HTTP_HOST}/awstatscss/$1 [R,L]' echo -e 'RewriteRule ^/awstatsicons/(.*) https://%{HTTP_HOST}/awstatsicons/$1 [R,L]' echo -e 'RewriteRule ^/awstats/(.*) https://%{HTTP_HOST}/awstats/$1 [R,L]' } > /etc/httpd/conf.d/awstats.conf /sbin/service httpd graceful
### AWStats の実行
# ログは古い順に読み込ませる。DNSLookup=1 を設定していると結構時間かかる。
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=pooh.gr.jp -logfile=/var/log/httpd/access_log.4 /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=pooh.gr.jp -logfile=/var/log/httpd/access_log.3 /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=pooh.gr.jp -logfile=/var/log/httpd/access_log.2 /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=pooh.gr.jp -logfile=/var/log/httpd/access_log.1 /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=pooh.gr.jp
# ブラウザから https://pooh.gr.jp/awstats/awstats.pl でアクセスする。
# -config=pooh.gr.jp とすべきところを -config=/usr/local/awstats/wwwroot/cgi-bin/awstats.pooh.gr.jp.conf 等と指定していると困ったことになる。更新処理は走るんだけどページ上では “更新なし” とか表示されて集計結果が見れない。
### Cron への登録
{ echo -e '#!/bin/sh' echo -e '/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=pooh.gr.jp 1>/dev/null' } > /etc/cron.daily/awstats.cron chmod 755 /etc/cron.daily/awstats.cron