AWstatsをnginxが稼働中のサーバーにインストールした時のメモです。
公式サイトよりダウンロードして /usr/share/awstats に展開。
http://awstats.sourceforge.net/#DOWNLOAD
# tar xzvf awstats-7.6.tar.gz # mv awstats-7.6 /usr/share/awstats
そして、〜/awstats/tools/nginx/awstats-nginx.conf に書かれている設定をnginxのサイト設定ファイルに追記すればいいのですが、私の環境では次のように書き直す必要がありました。
# # AWstats # location ^~ /awstats/classes/ { alias /usr/share/awstats/wwwroot/classes/; } location ^~ /awstats/css/ { alias /usr/share/awstats/wwwroot/css/; } location ^~ /awstats/icon/ { alias /usr/share/awstats/wwwroot/icon/; } location ^~ /awstats-icon/ { alias /usr/share/awstats/wwwroot/icon/; } location ^~ /awstats/js/ { alias /usr/share/awstats/wwwroot/js/; } # Dynamic stats. location ~ ^/cgi-bin/(awredir|awstats)\.pl { #↓必要に応じて追加 #auth_basic "Secret Area"; #auth_basic_user_file "/home/*****/.htpassword"; #↓これを先に書かないと設定が上書きされてしまうのか正常に動作しない include fastcgi_params; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME /usr/share/awstats/wwwroot/cgi-bin/awstats-fcgi.php; fastcgi_param X_SCRIPT_FILENAME /usr/share/awstats/wwwroot$fastcgi_script_name; fastcgi_param X_SCRIPT_NAME $fastcgi_script_name; }
あるいは、fcgiwrapを入れている環境では下記でも動きます。
fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME /usr/share/awstats/wwwroot$fastcgi_script_name; include fastcgi_params;
この awstats-fcgi.php、コードを読むとperlスクリプトをシェルから実行して出力結果を返しているようで、なるほどと思いました。
nginxを導入してる環境でfcgiwrapをインストールしてるところは少ないと思うので、これはありかも。)
cp /usr/share/awstats/tools/nginx/awstats-fcgi.php /usr/share/awstats/wwwroot/cgi-bin/ mkdir /var/lib/awstats chmod -R 755 /usr/share/awstats/
perl /usr/share/awstats/tools/awstats_configure.pl
上記perlスクリプトを実行し、設問に適切に答えてプロファイル名も登録すると、
サイト設定ファイルが /etc/awstats/以下に作成されるので下記項目を修正
LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log /var/log/nginx/access.log.*.gz |" # ↑実際のログファイル名に合わせて修正してください。 DirData="/var/lib/awstats" DirIcons="/awstats/icon" # SiteDomain,HostAliasesはサイトに応じて修正。
そして集計実行。
perl awstats.pl -output=pagetype -config=登録したプロファイル名)
するとブラウザで集計結果を表示できるようになります。
http://(サイトのホスト)/cgi-bin/awstats.pl?config=(登録したプロファイル名)
集計をcronで1日1回実行したい場合は、/etc/crontabに下記追加
05 15 * * * root /usr/bin/perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=(登録したプロファイル名) -update 1>/dev/null 2>&1
CRONデーモン再起動
/etc/init.d/cron reload
・思い出しながら書いているので、間違ったり抜けたりしてる箇所があるかもしれません。
#追記 2017/03/11
2016年以降、Googleの全面HTTPS化に伴う仕様変更により、referrerから検索キーワードを取得できなくなりました。
今後、他社の検索エンジンも追随していくと思われます。
そうなると、残念ながらAWStats等のアクセス解析ソフトを導入する意義が半減してしまいます。
GoogleウェブマスターツールやGoogleアナリティクスを利用すればGoogleで検索された時の検索キーワードは取得できますが、他社の検索エンジンで検索された時の検索キーワードを取得するためには、それぞれの会社別の同様のツールを利用しなければならず、かなり不便になりそうです。
また、そうなった時にAWstatsのようなサーバーサイドのアクセス解析は完全に不要になるかというと、そういうわけではなく、例えば画像や動画などのメディアファイルに直リンクされた場合、GoogleアナリティクスのようなJavaScriptのタグをHTMLに貼り付けるタイプのツールではアクセス情報が取得できません。
ですので、AWStatsの存在意義が無くなることは無いのですが・・・・うーん。