#環境
Ubuntu16.04LTS
Apache2.4.18
#インストール
sudo apt-get install awstats
何がインストールされたかは以下のコマンドで確認(適宜grep conf)
dpkg -L awstats
#デフォルトの解析を止める
インストールするとAWStatsは10分毎にcronで解析をする。これを止める。
/etc/cron.d/awstatsを削除する。
cd /etc/cron.d
sudo rm awstats
#cgidを有効にする
Apacheのモジュールcgidが有効になっていなければならない。(有効になってないとソースがそのまま表示される)
以下のコマンドをたたくと、/etc/apache2/mods-enabledにシンボリックリンクが貼られる。
sudo a2enmod cgid
※その他のコマンド
a2dismod モジュール名 : モジュール設定を無効する
a2ensite サイト設定名 : サイト設定を有効にします。
a2dissite サイト設定名 : サイト設定を無効にします。
↓参照
UbuntuでApacheを設定する際のハマリどころ
#mime.confに以下を追記
「AddHandler cgi-script .cgi」の記述はデフォであるので.plを追記するのみ
(これは必須ではないかも、virtual-hostの設定ファイルも同様)
AddHandler cgi-script .cgi .pl
#設定ファイルをいじる
virtualhostごとのログファイルを解析するため、設定ファイルをそれぞれ設定する。
/etc/awstats/に設定ファイルができるので、コピーする。
hogehogeドメインのvirtualhostを解析する場合。
sudo cp awstats.conf.local awstats.hogehoge.conf
コピーした設定ファイル awstats.hogehoge.confをIncludeするように親設定ファイルawstats.confを編集
sudo pico awstats.conf
#####Includeする
Include "/etc/awstats/awstats.hogehoge.conf"
ここを参照してパラメータを設定する
awstats のインストール
# You can overrides config directives here.
# This is particularly useful for users with several configs for
# different virtual servers, who want to reuse common parameters.
# Also, this file is not updated with each new upstream release.
##解析するログファイル
LogFile="cat /var/log/apache2/hogehoge_access.log*|"
##ログのタイプ 「W」はWebログのこと。
LogType=W
##ログのフォーマットを指定。combined なので「1」を指定。
LogFormat=1
##ドメイン名の指定
SiteDomain="hogehoge.hoge.com"
##ホストのエイリアス名を指定する
##HostAliases=""
##ルックアップを行うかどうか。無駄に負荷はかけたくない場合は「0」
##ルックアップを無効にすると国別アクセス解析ができなくなる
DNSLookup=1
##解析結果を保存する場所
DirData="/home/hoge/awstats/hoge"
##cgi-binディレクトリのある場所。ドキュメントルートからの相対or絶対パス
##DirCgi="/cgi-bin/awstats"
##解析結果ページに表示されるアイコン画像のPATH。
##ドキュメントルートからの相対or絶対パス
##DirIcons="/awstats-icon"
##解析対象のインデクスファイル。index.html からindex.php へ変更。
##DefaultFile="index.php"
##言語の指定。デフォルトでは、auto に指定されています。
Lang="jp"
##表示を左右2画面のフレームにする。
UseFramesWhenCGI=1
##詳細表示をクリックしたときに別ウィンドウにするかどうか。
##別ウィンドウが開くと面倒なのでオフにした。
DetailedReportsOnNewWindows=0
##ブラウザから解析の更新を可能にする
##通常、cronで定刻時刻に解析データをアップデートするようにするところを、
##ブラウザから解析データを更新できるようにする。
##AllowToUpdateStatsFromBrowser=1
##年間の集計を許可する
AllowFullYearView=3
## ローカルからのアクセスをカウントしない
##SkipHosts="127.0.0.1 REGEX[^128\.20\.1\.]"
SkipHosts="127.0.0.1"
## 日曜日を週の頭にもってくる
FirstDayOfWeek=0
#awstats.plのシンボリックリンクを作成
インストールすると/usr/lib/cgi-bin/awstats.plができるので
これにシンボリックリンクを貼る
sudo mkdir /var/www/awstats
cd /var/www/awstats
sudo ln -s /usr/lib/cgi-bin/awstats.pl awstats.pl
#sitesのconfファイルの設定
任意のsites confファイルに以下を追記する。
ScriptAlias /awstats/ "/var/www/awstats/"
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
#CGIディレクトリコンテナ
<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI FollowSymLinks
Order allow,deny
Allow from all
</Directory>
自ホストの解析に組み込む場合、awstatsへのアクセスをログに記録しない。
#awstatsを含むアクセスログは記録しない環境変数
SetEnvIf Request_URI "awstats\.pl" no_log
#上記で設定した環境変数を有効にする
CustomLog ${APACHE_LOG_DIR}/hogehoge_access.log combined env=!no_log
ここまでいったら、一旦cgiスクリプトを手動で起動させ、表示させてみる。
perl /usr/lib/cgi-bin/awstats.pl -config=hogehoge.domainname -update
設定ファイルに記述したDirDataに解析データが保存されているか確かめる。
この設定例では
DirData="/home/hoge/awstats/hoge"
Apacheを再起動して解析データが表示されるか確認する。
#cronに定期的(1分毎)に解析を行うように設定する。
crontab -e
以下を追加「-config=」には/etc/awstats/にある設定ファイル名ではなく、
awstats設定ファイル内の「SiteDomain」に定義されたドメイン名を設定する。
*/01 * * * * /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -config=hogehoge.domainname -update > /dev/null 2>&1
これで1分ごとに解析が行われているはず。
#参考
http://landisk.kororo.jp/debian/13_awstats.php
https://help.ubuntu.com/community/AWStats
http://www.nu-chon.org/w/index.php?AWStats%A5%E1%A5%E2
http://krakenbeal.blogspot.jp/2011/03/ubuntuawstats.html
http://centossrv.com/awstats.shtml
http://hobbit.ddo.jp/awstatsdocs/awstats_tools.html
http://sourceforge.net/projects/awstats/?source=typ_redirect