日本語版AWStats 2.23をWindowsNTで利用する

動作可能である事はわかっていましたが....

謝辞

 以下に公開する日本語版AWStatsをWindowsNTで利用するための導入メモは、掲示板にcosmosさんが投稿してくださった内容の転載になります。掲示板に投稿して頂いた後、管理人がcosmosさんに転載をお願いしたところ、快く同意して頂けましたので、こちらに晴れて公開することができるようになりました。

 転載の同意を頂いた後、公開用に内容を多少修正した内容をcosmosさんからメールにて頂きました。その内容を以下に転載いたします。cosmosさんには、この場を借りて御礼申し上げますm(__)m

 

導入メモ by cosmosさん

 NT4.0Server + Apache 1.3.20 + Activeperl5.6.0.613 の組合で完全に動作させることに成功しましたので、お知らせします。但し、NT特有の部分がありますので、以下に「キモ」を記します。

導入作業を始める前提として、
 1.NT4.0ServerはSP6a及び最新セキュリティパッチを導入済のこと
 2.IIS4.0は導入していても良いが、WWWサービスは停止させておくこと(Apacheとバッティングしてしまうため)
 3.Apache及びActivePerlは上記バージョンを導入済のこと
以上3点をクリアしているものとします。

また、以下の作業では、perl.exeは c:\perl\bin にあり、webのホームディレクトリはc:\web\html、cgiディレクトリは c:\Program Files\Apache Group\Apache\cgi-bin、logディレクトリはc:\web\log に設定されているものとして話を進めます。実際には各自の環境に合わせてください。

1. NT用crondを導入
 
ntcnd22.zip (1,520KB) WindowsNT用 crond (シェアウェア)
 シェアウェアですが、個人・学術用途で使用する分にはフリーです。
 http://www.winsite.com/info/pc/winnt/miscutil/ntcnd22.zip/index.html

 アーカイブ中のNTCNDINS.EXEを実行するとインストールを開始します。
 Registration Key: 37284029382 で個人用モードでインストールできます。
 (この場合、リモートマシンの設定が出来ないと言う制限あり:今回には支障なし)

 上記では省略しましたが、インストール手順は
 「MRTG 導入ガイド(WindowsNT)」(http://www.orchid.co.jp/~tamura/dennou/mrtg_nt/)
 というウェブに詳しく書かれていますので、参考にされると良いでしょう。

2. 各ファイル修正
 「キモ」は.plファイルの呼び出し方です。
 うちの環境では「perl.exe xxx.pl」の形でなければ上手く動作しません。
 また、xxx.plファイルの存在するディレクトリへ移動してコールしなければ上手く動作しません。
 特に注意する必要があるのがawstats.cronで、以下のように修正します:
 (※の付いた行は実際には書かずに作ってください)

 [awstats.cron]
 #! c:/perl/bin/perl.exe
 #↑このようにディスクも明示しフルパスで書きます。NTの場合は出来る限りフルパスで記述した方が良いようです。※1

 # 完全日本語版AWStats用サンプルcronファイル
 #
 # ファイルパス等は自分の環境に合わせて書き直して下さい。

 # httpのログファイルをデコードした上で一時ディレクトリに格納します。
 # access_log.eucは一時的にデコードしたログを保存するファイルの名前です。
 system("perl decode.pl < c:/web/log/access_log > c:/Program Files/Apache Group/Apache/
 cgi-bin/access_log.euc");
 #↑このようにperlからコールします。又、ファイル指定は絶対パス指定が必須です。※2

 # awstats.plが切り詰めないオリジナルのログを切り詰めます。
 open(LOG,"+<c:/web/log/access_log");
 #↑ここも※2と同様、ファイル指定は絶対パスで行います。※3
 truncate(LOG,0);
 close(LOG);

 # awstats.plを走らせ、htmlファイルを出力します。
 # 必須ではありませんが、awstats.plを直接参照させるよりも、htmlに出力して表示す
 # る方が、良好なパフォーマンスが得られます。
 system("perl awstats.pl -h www.xxx.com > c:/web/html/awstats.html");
 #↑ここも※2と同様です。www.xxx.comは自サイトのウェブのFQDNを指定してください。※4

 # アクセス可能になるように出力したhtmlファイルの権限を変更
 #system("chgrp nobody /home/httpd/html/awstats.html");
 #system("chown nobody /home/httpd/html/awstats.html");
 #↑NTではコメントアウトします。※5

 上記の法則性に従って、Unixで修正が必要な部分を参考に、他のファイルも修正します。


3. 以下の内容のcron.batを作成し適当なディレクトリに置きます。私は c:\ に置いています。
 
[cron.bat]
 c:
 cd \program files\apache group\apache\cgi-bin
 perl awstats.cron

4. ntcndにcron.batを登録
 更新間隔はお好みに合わせて。私は5分おきにしています。
 
本当はATコマンドでも動作しそうですが、NTCrondは便利なので、この際入れてしまいました。
 ちなみにNTCrondは、MRTGを動作させる際にも使っております。
 以上の手順でUNIX並にまともに動作させることに成功しました。御参考までに。

 

備考

 上記の通り、cosmosさんが動作させた環境は、WindowsNT+Apache+ActivePerlですが、IISのログ形式をAWStatsは理解することができますので、IISでも大丈夫です。AWStatsが必要とするのは、cgiとしてPerlが動作する環境と、AWStatsが理解できるログなので、Windows2000+ActivePerl+IIS/Apacheでも、WindowsXP+ActivePerl+IIS/Apacheでも問題なく動作するはずです。ActivePerlのドキュメントにXP対応については記述がありませんが、私の手元の日本語版WindowsXP 180日評価版では、正常に動作しています。

 また、こちらで紹介している内容は日本語版AWStats 2.23をベースとした内容ですが、日本語版AWStats 3.0 (2001.09.22現在テスト公開中)でも基本は同じです。

 もしcosmosさんとは異なる動作環境で動作確認が取れた方がいらっしゃいましたら、管理人までご連絡頂ければ幸いです。このページのどこかにその動作環境を紹介させて頂きたいと思います。