投稿アップデート情報 追記(12/17) … 追記3(12/28) 追記4(2012/4/11) 追記5(2013/1/9)
本家のお世話-#3。でrotatelogs.exeについての不安を書いたのだが,今回Apache2.2/CHANGES.txtを読んでいたら何となく大丈夫かなと思えたので,rotatelogsを参考にログを記録してみることにした。
httpd.confの中はこんな感じ。
CustomLog “|bin/rotatelogs -l -f logs/access.%Y.%m.%d 86400” combined
ErrorLog “|bin/rotatelogs -l -f logs/error.%Y-%m-%d 86400”
combined を使うのは,AWStats を使うから。
ということで,AWStatsも再導入する。導入方法については,AWStats7.0へのアップグレード。を参照してほしい。
AWStatsのデータ更新のために,中に下の3行を記入したbatファイルを作り,タスクスケジューラで毎日0時に前日のアクセスログについて実行してやる。
@echo off
perl [絶対パス]awstats.pl -config=o6asan.com -update
追記(12/17):
「AWStats7.0へのアップグレード。を参照してほしい。」と書いたんだけれども,かのページの「5. ドキュメントルートにawstatsフォルダを作り,その中にcss,icon,classes,jsの4フォルダを移動する。」については,ちょっと注意を要する。
今回の場合,ドキュメントルートにはWordPress3.3があってしかもマルチサイトとして使われているので,Rewriteが有効になっている。で,Rewriteを使うとなれば,Rewrite有効のディレクトリでは,httpd.confの Options のところには FollowSymLinks かなんかがいるわけだけれど,AWStatsのhttpd_confではOptions Noneになっているから,当然エラーが出る。awstatsフォルダの直下に.htaccessを入れて Options FollowSymLinks にしてやるのも一つの手だけど,どうせ httpd-awstats.conf を作って Alias を切ってやらないといけないから,この際,awstatsフォルダそのものをドキュメントルートの外にしてやることにした。
それから,「タスクスケジューラで毎日0時」と書いたが,いざまわしてみたらrotatelogs.exeの動きとぶつかってなんか変なので,batは0:05に流してやることにした。結局,あんまり意味がなさそうなので,元に戻した。( <--- 追記2 12/20)
書き忘れたが,logs/access.%Y.%m.%d でログを取っているので,awstats.model.conf のLogFileのところは[絶対パス]logs/access.%YYYY-24.%MM-24.%DD-24 にしてある。前日のアクセスログに対してbatを実行するということ。
久しぶりにStatisticsを見たわけだが,なんと
1. OSの参照がすべて不明になる
2. 検索文字列が一切捕捉されない
という不思議なことが起こっていた。しばらくああでもないこうでもないと,confを弄っていたのだが,どうにも埒が明かない。ググってみたがピタリのが見当たらない。しかし,AWStats + Windoes Server 2008 R2 + IIS 7.5というところの現象がよく似ている。環境が違うので何をしたらいいだろうと思ったが,エイヤッということで,ActivePerl-5.14.2.1402-MSWin32-x86-295342.msiからActivePerl-5.12.4.1205-MSWin32-x86-294981.msiにもどしてみた。すると,ビンゴ。
しかし,何が原因なんだろう。Perlについて全くの素人なので,リリースノートを見てもどこが変わっているのかよくわからん。
追記3(12/28):
上記の件なんだが,やはり,AWStatsのフォーラムにでも報告しておくべきなのかなとSourceForge.netをうろうろしていたら,http://sourceforge.net/projects/awstats/develop/ にAwstats 7.0 awstats.pl fixes という項目があった。これ,ほんとたまたまというか,お引き合わせとしか思えん。というのが,このページは時系列で最新のが10個だけ載ってるところで,この表題の件は下から2番目だったのだ。この時に気づかなかったら,見つけるのは大変だったと思う。
ページに行ってみたら,voutersさんという方のパッチがあって,Perlのバージョンは 5.14.2 になっているしということで,なんとなくこのパッチで解決するのではとピンときた。早速, http://vouters.dyndns.org/public/awstats-7.0.pl.diff.tar.gz を落として展開して,中の awstats.pl.diff をゲット。
patch utility を使うといいみたいに書いてあったので,http://gnuwin32.sourceforge.net/packages/patch.htm に行って patch-2.5.9-7-bin.zip を落としてきた。展開して中の patch.exe で patch –binary -pnum <patchfile をやってみたが,hunk FAILEDがでてうまく当たらない。patch.exe の使い方はよくわからないし,困ったなぁと思ったが,awstats.pl.diffを開いてみたら大した量じゃなかったので,手作業でawstats.pl にあててやった。
ActivePerl-5.14.2.1402-MSWin32-x86-295342.msi を再インストールしてやって,使ってみたら,「1. OSの参照がすべて不明になる」も「2. 検索文字列が一切捕捉されない」も解消されていた。\(^O^)/
ところで,rotatelogs.exeはまともに動いてくれてはいるけれど,カスタムログひとつにつき,プロセスが4つできる。rotatelogs.exe2つと,cmd.exe2つ。これがうざいといえばうざいカナ。もっとも,Win版のApacheはhttpd.exeからして2つだから,そんなものなんかなと思っている。動きは別におかしくないし。まっ,メモリがギリギリの場合,このプロセスによる占有は痛いかもしれない。
追記4(2012/4/11):
Apache導入についての新しい記事を,本家のお世話-#28。,本家のお世話-#29。に書いた。
追記5(2013/1/9):
AWStats7.1へのアップデートを書いた。上で失敗している patch.exe の使い方も書いてあるので,ナンだったらご覧ください。