跳到主要內容

在Windows 2003上安裝流量分析工具 Awstats

先安裝Active Perl在Windows上
如果有了 IIS 下跨平台的 Perl,您又何須費神在 Windows 2000 下安裝 Apache 來執行 perl 呢?那麼在IIS下要如何架構Perl呢?又要如何跨平台使用呢?
下載及安裝 Active Perl
首先請下載新版 ActivePerl-5.8.8.822-MSWin32-x86-280952.msi。

Download:

http://ftp.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.822-MSWin32-x86-280952.msi


接著請安裝 Active Perl 。要注意的是路徑要設為 c:\usr\ 或是 c:\usr\local\ ( 原因後面會有詳細的說明 )。若是您的電腦有安裝 IIS 的話,那麼在安裝時系統會自動幫您整合。
以下將以 c:\usr\ 作為說明之目錄。
IIS 之注意事項
對 IIS 的老手而言,這一段大概就可以省略了。不過筆者仍在此對 IIS 的初學者稍微的提醒一下下:
在您安裝 IIS 前,請預必確認您的系統中至少有一顆硬碟是 NTFS 的格式。
安裝好 IIS 後,在 Windows 2003 下預設的目錄為 C:\Inetpub\wwwroot\。若是您的 C 槽不是 NTFS 格式,請將它轉換為 NTFS 格式,或是將目指定至其他 NTFS 格式硬碟下的資料夾。有關 IIS 方面的管理及設定,
在此不便贅述;畢竟本篇不是 IIS 教學。
在 web 資料夾的權限方面 ( 滑鼠右鍵 -> 內容 -> 安全 ),一定要有一個Everybody的使用者,其權限至少要有讀取及執行、讀取、寫入。
整合 Active Perl 及 IIS
請依照下步驟作設定:
1.「控制台」->「系統管理工具」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」,請將讀取及寫入打勾。
2.「控制台」->「系統管理工具」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」->「設定」->「應用程式對應」->「.pl 」->「編輯」,請將指令引擎打勾。這個目的是要讓 perl 可以在瀏覽器上執行。
3.「控制台」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」->「設定」->「應用程式對應」->「.plx 」->「編輯」,請將指令引擎打勾。
4.「控制台」->「系統管理工具」->「Internet 服務管理員」->「您的 web 站台」->「內容」->「主目錄」->「設定」->「新增」,在「執行檔」欄內鍵入 C:\usr\bin\Perl.exe "%s" %s,並在「副檔名」欄內鍵入 .cgi ,並將 指令引擎打勾。這個目的是為了讓 Perl 可以執行副檔名為「.cgi 」之 perl 執行檔。 接著只要一直按確定就可以了!
開始執行 Perl
請先將下列程式碼複製起來,貼在記事本上,並將檔存在 web 的目錄之 test.pl 或 test.cgi 。

代碼:

print "content-type:text/html","\n\n";
print "<html>\n";
print "<head><title>test</title></head>\n";
print "<body><center>\n";
print "CGI TEST \n";
print "支援PERL \n";
print "</center></body>\n";
print "</html>\n"


如果SHOW的出來就表示支援PERL了

然後設定IIS 「預設的網站」->「主目錄」->「設定」->「應用程式對應」->「新增」
加入 執行檔為 C:\Perl\bin\Perl.exe "%s" %s 副檔名為pl
這邊個人建議只要加到你要安裝AWstats的目錄就好,不需要加到預設的網站,以減少危險性
開始安裝Awstats
接著請下載AWstats
http://awstats.sourceforge.net/#DOWNLOAD
解開到您所要安裝的目錄底下
然後便設定IIS的W3C
「預設的網站」 ->「網站」-> W3C擴充記錄格式的「內容」->「進階」
只要勾選下列的就好,不能多也不能少,不然可能會無法抓到流量

代碼:

date
time
c-ip
cs-username
cs-method
cs-uri-stem
sc-status
sc-bytes
cs-version
cs(User-Agent)
cs(Referer)

順便也把「請使用本地時間為檔案命名」也打勾(先選每日這個選項才可以勾選),不然會造成有部份時間抓不到流量
應IIS是用GMT為標準,而非台灣時區的GMT+8
然後restart IIS serivce
在你所解開的AWstats裡面的wwwroot/cgi-bin會有一個awstats.model.conf
最好copy一份改成你的sitename ex:awstats.test.conf再去編輯
然後把AWstats底下的wwwroot指成虛擬目錄,或看你要用別的方式也行,依人而定
修改awstats.test.conf

代碼:
LogFile:W3C Log的位置
LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1/ex%YY-0%MM-0%DD-0.log"

LogType:日誌的類型(W-web log; M-mail log; F-ftp log)
LogType=W

LogFormat:日誌的格式
LogFormat="date time cs-method cs-uri-stem cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes"

*注意:IIS6.0 不能用LogFormat=2的格式,請設成如上列格式

SiteDomain:統計的網站(必要設定)
SiteDomain="www.mySite.com"

DefaultFile:首頁的檔名
DefaultFile="index.html"

Lang 語系
Lang="tw"

Plugin

TimeZone 時區
LoadPlugin="timezone +8"

最後一步就是在CMD底下打上
awstats.pl -config=test –update (以上述awstats.test.conf為例)
如成功會出現下列訊息

代碼:
Update for config "C:\<your path>/awstats.test.conf"
With data in log file "C:/WINDOWS/system32/LogFiles/W3SVC1/ex060222.log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 3690)
Jumped lines in file: 3690
Found 3690 already parsed records.
Parsed lines in file: 1
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 1 new qualified records.

訊息內容不一定,依W3C Log為準,但至少一定不會有waring字眼的出現
然後再browser打上http://<domain>/cgi-bin/awstats.pl?config=test
就可以看到內容了
最後再把這串awstats.pl -config=test –update存成*.bat加入排程就可以了
原始文章:
http://www.ihao.org/dz5/viewthread.php?tid=136&highlight=awstats

留言

這個網誌中的熱門文章

以管理者權限執行批次檔

最近有個專案需要執行批次檔,來進行某些設定或者城市的安裝,在XP上這個Script可以運行沒問題,可是一到Vista以後的Windows版本就無法運行了,最主要的原因是,UAC的管制的問題,幾經尋找,總算找到一個可行的解決辦法。

如何使用電子發票應用API

財政部在電子發票推行上,為了方便開發更多應用所以提供了API可供個人或者廠商進行相關應用的開發,申請的方式請參考 –> 電子發票API申請 最簡單的申請方式就是透過自然人憑證或者工商憑證申請,這樣就不需要檢附任何證明文件。不過這不是本篇的重點,當申請到時會給你一組AppID跟APIKey,然後你可以下載 電子發票應用規格1.4版 來了解怎樣使用這個API,或許是我才疏學淺,所以在1.3版的時候其實搞不太懂他的API文件,到了1.4版才摸清楚發生了什麼事,當然還是花了點時間才搞懂,現在就簡單說明一下API的使用方式,希望看到本篇文章的同好就不需要花時間測試了。

DataGridView欄位統一格式化

最近的工作內有一個需求,就是由於專案中有許多呈現資料的DataGridView,而其中的欄位需要呈現的包含金額、數字或者日期等格式,若要一個個的設定格式,如果有一天格式突然變更,可能就要苦工做到死,如何讓專案中的這些格式都統一就成了一個問題,經過了一番查找,發現可以透過DataGridView.CellFormatting Event來解決這個問題。