剛剛偶然在網路上搜尋到的....
作者很詳細的將使用方式分門別類介紹出來,以下是網址:
海芋小站 - AntiVir(小紅傘) 使用介紹
2007年10月23日 星期二
[phpMyEdit] 程式產生器 for 單一 Table 的編輯
今天接到老大命令,要寫個介面 maintain 某個 MySQL Table 的資料,乍聽之下真是件一點都不有趣的工作....
不過老大離開前丟了關鍵字「phpMyEdit」給我,要我去搜尋,說用這個工具應該可以很快作出來 ....
於是去搜尋一下資料,並下載試用後,發現真是個好用的工具....不過由於資料與介面的中文似乎都有問題,所以我作了以下兩個步驟來處理好中文的問題:
首先在產生出來的程式中,移到大約 90 行前後,找到 $opts['language'],將值設定為 「EN-US」。
接著開啟檔案 phpMyEdit.class.php,找到「function connect()」(大約在 3059~3079 行),在 SQL 連線後加上「mysql_query("SET NAMES 'utf8'"); 」,如此一來中文就可以正常顯示囉!
不過老大離開前丟了關鍵字「phpMyEdit」給我,要我去搜尋,說用這個工具應該可以很快作出來 ....
於是去搜尋一下資料,並下載試用後,發現真是個好用的工具....不過由於資料與介面的中文似乎都有問題,所以我作了以下兩個步驟來處理好中文的問題:
首先在產生出來的程式中,移到大約 90 行前後,找到 $opts['language'],將值設定為 「EN-US」。
接著開啟檔案 phpMyEdit.class.php,找到「function connect()」(大約在 3059~3079 行),在 SQL 連線後加上「mysql_query("SET NAMES 'utf8'"); 」,如此一來中文就可以正常顯示囉!
2007年10月20日 星期六
[AWStats] 增加各國別(Countries)參觀詳細統計資訊
之前有接到要求,要讓顯示國家的部分出現來自各國流量所佔的比例....
恩....原本只有「網頁數」、「點擊數」「位元組」這三個選項,根本不符合要求,所以只好去看看 source code 要怎麼加上這些欄位了...
一打開 source code ....... 破萬行的程式..... Orz
看了半天,終於發現了,重點在於第 8059~8104 行,關鍵的變數為「$ShowDomainsStats」,因此我在 8049 與 8050 之間加入以下這行:
其實說到底,也只是加了一行程式,把內建的功能打開而已。
恩....原本只有「網頁數」、「點擊數」「位元組」這三個選項,根本不符合要求,所以只好去看看 source code 要怎麼加上這些欄位了...
一打開 source code ....... 破萬行的程式..... Orz
看了半天,終於發現了,重點在於第 8059~8104 行,關鍵的變數為「$ShowDomainsStats」,因此我在 8049 與 8050 之間加入以下這行:
$ShowDomainsStats = 'UVPHB';強制修改變數內容後,讓後面的顯示通通跑出來,就多出「參觀者」、「參觀次數」這兩個欄位囉! 其中還包含了百分比的計算!
其實說到底,也只是加了一行程式,把內建的功能打開而已。
2007年10月19日 星期五
[AWStats] Apache 的 Log 分析
之前將 awstats Log 分析軟體用在分析 IIS 所產生出來的 web log
這次改版為 PHP version,因此要改為分析 Apache 的 log,除了之前的設定需要注意外,基本上比較重要的在 httpd.conf 這個檔案的設定
由於 awstats 用的是 perl 去產生報表,因此 Apache 要設定為支援執行 perl 才行!
因此 httpd.conf 要作以下設定:
最後 awstats.pl 要將第一行的「#!/usr/bin/perl」改為「#!C:\Perl\bin\perl.exe」(由於我的環境是在 Windows 下,裝的是 ActivePerl;若是在 Linux 環境下就不需要修改這個部分了)
PS. 我用的架站套件是 xampp
參考資料
這次改版為 PHP version,因此要改為分析 Apache 的 log,除了之前的設定需要注意外,基本上比較重要的在 httpd.conf 這個檔案的設定
由於 awstats 用的是 perl 去產生報表,因此 Apache 要設定為支援執行 perl 才行!
因此 httpd.conf 要作以下設定:
- 在 <Directory /></Directory> 目錄中加入「Options FollowSymLinks +ExecCGI」
- 確定有加入設定「LoadModule cgi_module modules/mod_cgi.so」
- 確定有加入設定「AddHandler cgi-script .cgi .pl」
- 為了讓 awstats 可以正確的 parse log 檔案,要將 CustomLog 的設定由「common」改為「combined」
最後 awstats.pl 要將第一行的「#!/usr/bin/perl」改為「#!C:\Perl\bin\perl.exe」(由於我的環境是在 Windows 下,裝的是 ActivePerl;若是在 Linux 環境下就不需要修改這個部分了)
PS. 我用的架站套件是 xampp
參考資料
2007年8月8日 星期三
[AWStats] IIS Log Analyzer 拾遺補缺
之前用了這套去處理 ADOC 的網頁流量分析....發現其實所呈現出來的訊息還蠻詳細的!
不過測試到後來有發現幾個問題,不過有逐一解決了...
無法 parse 之前的 log file
這個問題聽起來似乎很可怕.....其實還好...
假設在 awstats.testSite.conf 設定檔中,節錄設定如下:
假設只透過以下指令:
假設我們要從八月初開始到今日的所有 log 分析,就必須做兩個動作:
【註】summary 檔案是以一個月為單位作儲存。
程式不會自動每日分析 log
這個部分真是始料未及,原本以為他會自己做,到後來國貿局的小姐發現了跟我說,我才知道這回事.....真是汗顏....@_@
解決的方式很容易,就只要設定工作排程,每日的 23:59 讓他分析 log 就好了,不過程式執行的路徑要完整指定清楚就是了!
以下給個範例:
不過測試到後來有發現幾個問題,不過有逐一解決了...
無法 parse 之前的 log file
這個問題聽起來似乎很可怕.....其實還好...
假設在 awstats.testSite.conf 設定檔中,節錄設定如下:
# 指定所要分析的 log 檔案
LogFile="D:/webLog/W3SVC1/ex%YY-0%MM-0%DD-0.log"
# 分析結果(summary)檔案存放的位置
DirData="C:/Inetpub/wwwroot/awstats_data"
假設只透過以下指令:
perl awstats.pl -config=testSite -update則僅僅是是分析當天的 log 檔案,而假設當天為 2007/08/08,那分析完該檔案後,若要分析該日之前的 log 檔案,則會被認為是 old 的資料而不會將分析結果加入 summary 檔案中。
假設我們要從八月初開始到今日的所有 log 分析,就必須做兩個動作:
- 刪除 summary 檔案
- 再執行以下指令:
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070801.log" -update當然,也可以寫個批次檔(.bat)去跑,這樣就省事多了。
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070802.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070803.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070804.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070805.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070806.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070807.log" -update
perl awstats.pl -config=testSite -LogFile="D:/webLog/W3SVC1/ex20070808.log" -update
【註】summary 檔案是以一個月為單位作儲存。
程式不會自動每日分析 log
這個部分真是始料未及,原本以為他會自己做,到後來國貿局的小姐發現了跟我說,我才知道這回事.....真是汗顏....@_@
解決的方式很容易,就只要設定工作排程,每日的 23:59 讓他分析 log 就好了,不過程式執行的路徑要完整指定清楚就是了!
以下給個範例:
C:\Perl\bin\perl.exe D:\myweb\log\cgi-bin\awstats.pl -config=myweb -update記得要加入例行性的工作囉!
2007年7月23日 星期一
產生 ERD 的工具
由於最近有畫 ERD 的需求,加上又不想用 Visio 畫....(畫出來真的不知道啥東西...)
所以上網搜尋了一下,找到了以下工具:
Web Tools:
Application Tools:
所以上網搜尋了一下,找到了以下工具:
Web Tools:
Application Tools:
2007年7月3日 星期二
[AWStats] Windows IIS 的 Log 分析
前言
由於工作上有 web log 分析的需求,又不想用 iTrend 2000 (感覺這套實在很遜....),於是在網路上找到這個號稱很強大又免費的工具「AWStats」,不僅可以分析 web log,連 FTP 以及 Mail 的 log 都可以分析,不過單就 Web log 而言,它可以針對 IIS、Apache、WebStar....等不同的 HTTP server 的 log 進行分析。
安裝前的準備
在安裝前,有以下兩樣工具必須先安裝起來:
1、Windows Scripting Host
2、Perl 執行環境:這個部分建議安裝 ActivePerl
當以上兩個部分都確定沒問題後,就可以上 AWStats 官方網站下載最新版的來安裝。(目前範例中安裝的是 Version 6.6)
第一次安裝 AWStats 時的設定
在第一次安裝 AWStats 後,會有一些設定必須進行:
IIS 設定
接著要進入 IIS 設定,到 site 上面按滑鼠右鍵,選擇「內容」,進行以下設定:
接著選擇「內容」進入 Log 的設定,點選 Tab「擴充內容」,只要勾選底下幾個選項即可:
接著必須暫時停止 IIS,並把原本舊有的 log file 移到其他目錄存放後,再重新啟動 IIS,之後產生的 web log 大概格式會變成如下:
AWStats 設定
首先必須將相關檔案複製到 Web Root 目錄中,假設都是在預設的情況下,必須將目錄「C:\Program Files\AWStats\wwwroot」底下的 cgi-bin、icon 兩個目錄複製到目錄「C:\Inetpub\wwwroot」中。
接著是設定檔的部分,設定檔必須存在於目錄「C:\Inetpub\wwwroot\cgi-bin」中,而其檔案名稱如下:
有了設定檔之後,接著就是修改裡面的設定來產生出我們要的 log 分析,以下是設定內容:(僅需修改以下說明的部分即可)
設定完之後,必須進入 console,進行第一次產生統計資料的動作,執行以下程式:
產生 HTML 報表
最後就是產生 HTML 報表了! 有兩種方式可以達成,第一種是直接在 console 中下指令,另一個是直接開網頁產生。一般來說,為求方便快速,當然是選後者。
假設 IIS Web Root 為剛剛上面設定的目錄 C:\Inetpub\wwwroot,則進入以下網址即可:
外掛 Plugin
看完產生出來的 HTML 報表後,點了 Country 發現,竟然沒辦法判斷國家? 於是上網找了一下,原來要開啟 GeoIPfree 這個 plugin,因此到設定檔中將此 plugin 的註解拿掉。
不過拿掉之後,還是不能跑,因為 ActivePerl 中的 module 沒辦法正確的執行這個 plugin,因此必須到 CPAN 直接下載 Geo::IPfree module,將其解壓縮後,再把 module 裡面的 Geo 目錄放到 AWStats 的 plugin 目錄中。
如此一來,就可以順利產生 static file 囉! 再回頭看 HTML 報表,也發現 Country 的部分可以成功顯示了!
後記
在官方網站的說明中,指示使用者將檔案放到 Inetpub/wwwroot 下,後來實驗發現,自己設定一個虛擬目錄存放也是可以的!
所以還是設定虛擬目錄比較好管理些.....
後來還有看到透過 FTP 將 log 傳送過來分析,也就是分析 log 的主機跟 Web server 不需要是同一台;此外,似乎還有一堆好用的 plugin 可以用,不過這個部分就等之後有空再來測試囉!
【註】雖然可以自行設定虛擬目錄存放程式,不過 icon 目錄還是必須要放在 webroot 下....(大概是程式設計的問題吧!)
由於工作上有 web log 分析的需求,又不想用 iTrend 2000 (感覺這套實在很遜....),於是在網路上找到這個號稱很強大又免費的工具「AWStats」,不僅可以分析 web log,連 FTP 以及 Mail 的 log 都可以分析,不過單就 Web log 而言,它可以針對 IIS、Apache、WebStar....等不同的 HTTP server 的 log 進行分析。
安裝前的準備
在安裝前,有以下兩樣工具必須先安裝起來:
1、Windows Scripting Host
2、Perl 執行環境:這個部分建議安裝 ActivePerl
當以上兩個部分都確定沒問題後,就可以上 AWStats 官方網站下載最新版的來安裝。(目前範例中安裝的是 Version 6.6)
第一次安裝 AWStats 時的設定
在第一次安裝 AWStats 後,會有一些設定必須進行:
# 這邊只是告訴你之後要進行一些基本的設定
----- AWStats awstats_configure 1.0 (build 1.6) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).
# 工具偵測出目前的 OS 是 Windows
-----> Running OS detected: Windows
# Web server 的設定
-----> Check for web server install
# 以下要指定 Apache 的設定
awstats_configure did not find your Apache web main runtime.
Please, enter full directory path of your Apache web server or
'none' to skip this step if you don't have local web server or
don't have permission to change its setup.
Example: c:Program filesapache groupapache
Apache Web server path ('none' to skip):
> none # 由於是用在IIS上,因此Apache的設定就跳過
Your web server config file(s) could not be found.
You will need to setup your web server manually to declare AWStats
script as a CGI, if you want to build reports dynamically.
See AWStats setup documentation (file docs/index.html)
-----> Update model config file 'C:/Program Files/AWStatswwwrootcgi-binawstats.model.conf'
File awstats.model.conf updated.
# 第一次安裝要產生設定檔,直接按 y 過去了
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y
# 設定 web site 的名稱(下面有範例,可以參考進行設定)
-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> testSite
-----> Create config file 'C:/Program Files/AWStatswwwrootcgi-binawstats.testSite.conf'
Config file C:/Program Files/AWStatswwwrootcgi-binawstats.testSite.conf created.
-----> Add update process inside a scheduler
Sorry, for Windows users, if you want to have statistics to be
updated on a regular basis, you have to add the update process
in a scheduler task manually (See AWStats docs/index.html).
Press ENTER to continue...
A SIMPLE config file has been created: C:/Program Files/AWStatswwwrootcgi-bin
awstats.testSite.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'testSite' with command:
> perl awstats.pl -update -config=testSite
You can also build static report pages for 'testSite' with command:
> perl awstats.pl -output=pagetype -config=testSite
Press ENTER to finish...
IIS 設定
接著要進入 IIS 設定,到 site 上面按滑鼠右鍵,選擇「內容」,進行以下設定:
- 確定選項「啟用紀錄(E)」有勾選
- 使用中的日誌格式必須選擇「W3C Extended Log File Format」
接著選擇「內容」進入 Log 的設定,點選 Tab「擴充內容」,只要勾選底下幾個選項即可:
- 日期 (date)
- 時間 (time)
- 用戶端 IP 位址 (c-ip)
- 使用者名稱 (cs-username)
- 方法 (cs-method)
- URI 粗縱線 (cs-uri-stem)
- URI 查詢 (cs-uri-query)
- 通訊協定狀態 (sc-status)
- 送出的位元組 (sc-bytes)
- 通訊協定版本 (cs-version)
- 使用者代理程式 (cs(User-Agent))
- 推薦者 (cs(Referer))
接著必須暫時停止 IIS,並把原本舊有的 log file 移到其他目錄存放後,再重新啟動 IIS,之後產生的 web log 大概格式會變成如下:
2007-07-03 06:29:00 140.137.4.232 - GET /test/Default.htm - 304 223 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Avant+Browser;+Avant+Browser;+.NET+CLR+1.0.3705;+.NET+CLR+1.1.4322;+InfoPath.1;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.30) -
2000-07-19 14:14:14 62.161.78.73 - GET / 200 1234 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0) http://www.from.com/from.htm
AWStats 設定
首先必須將相關檔案複製到 Web Root 目錄中,假設都是在預設的情況下,必須將目錄「C:\Program Files\AWStats\wwwroot」底下的 cgi-bin、icon 兩個目錄複製到目錄「C:\Inetpub\wwwroot」中。
接著是設定檔的部分,設定檔必須存在於目錄「C:\Inetpub\wwwroot\cgi-bin」中,而其檔案名稱如下:
awstats.<your_site_name>.conf若沒有此檔案,可複製範例設定檔(awstats.model.conf)後,修改檔名即可使用。
有了設定檔之後,接著就是修改裡面的設定來產生出我們要的 log 分析,以下是設定內容:(僅需修改以下說明的部分即可)
# "LogFile" contains the web, ftp or mail server log file to analyze.
# Possible values: A full path, or a relative path from awstats.pl directory.
# Example: "/var/log/apache/access.log"
# Example: "../logs/mycombinedlog.log"
# You can also use tags in this filename if you need a dynamic file name
# depending on date or time (Replacement is made by AWStats at the beginning
# of its execution). This is available tags :
# %YYYY-n is replaced with 4 digits year we were n hours ago
# %YY-n is replaced with 2 digits year we were n hours ago
# %MM-n is replaced with 2 digits month we were n hours ago
# %MO-n is replaced with 3 letters month we were n hours ago
# %DD-n is replaced with day we were n hours ago
# %HH-n is replaced with hour we were n hours ago
# %NS-n is replaced with number of seconds at 00:00 since 1970
# %WM-n is replaced with the week number in month (1-5)
# %Wm-n is replaced with the week number in month (0-4)
# %WY-n is replaced with the week number in year (01-52)
# %Wy-n is replaced with the week number in year (00-51)
# %DW-n is replaced with the day number in week (1-7, 1=sunday)
# use n=24 if you need (1-7, 1=monday)
# %Dw-n is replaced with the day number in week (0-6, 0=sunday)
# use n=24 if you need (0-6, 0=monday)
# Use 0 for n if you need current year, month, day, hour...
# Example: "/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
# Example: "C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log"
# You can also use a pipe if log file come from a pipe :
# Example: "gzip -d </var/log/apache/access.log.gz |"
# If there are several log files from load balancing servers :
# Example: "/pathtotools/logresolvemerge.pl *.log |"
# 指定 Log File 的位址,可按照上面詳細的說明
# 在此範例中,檔名為 ex070703.log
LogFile="D:/webLog/W3SVC1/ex%YY-0%MM-0%DD-0.log"
# W:表示處理的是 Web Log
LogType=W
# IIS 就直接設定為 2
LogFormat=2
# Site 名稱
SiteDomain="testSite"
# 除了 siteDomain,若有其他別名,就設定在這邊
HostAliases="testsite db3.pccu.edu.tw 127.0.0.1 localhost"
# DNS 查詢設定
DNSLookup=2
# 使用 Perl 跑出來的統計資料所存放的位置
# 若使用預設值「.」,則表示存放在與 awstats.pl 檔案相同的目錄中
DirData="C:/Inetpub/wwwroot/awstats_data"
# 主程式所存放的目錄
DirCgi="/cgi-bin"
# 產生網頁所需圖檔所存放的目錄
DirIcons="/icon"
# 是否允許由網頁直接更新結果
# 預設為0,表示必須進入 console 使用下指令更新
# 因此為了看到即時更新的結果,這邊改為允許(1)
AllowToUpdateStatsFromBrowser=1
設定完之後,必須進入 console,進行第一次產生統計資料的動作,執行以下程式:
C:\Documents and Settings\Administrator>cd C:\Inetpub\wwwroot\cgi-bin接著進入目錄 C:\Inetpub\wwwroot\awstats_data 中,就可以看見有統計資料產生出來了! 另外關於有 dopped、corrupted....等 record,可參考官方網站的說明。
C:\Inetpub\wwwroot\cgi-bin>perl awstats.pl -config=testSite -update
Create/Update database for config "./awstats.testSite.conf" by AWStats version 6.6 (build 1.887)
From data in log file "D:webLogW3SVC1ex070703.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 663
Found 1 dropped records,
Found 4 corrupted records,
Found 0 old records,
Found 658 new qualified records.
# 以上可以看見 Log 檔已經 parse 完成
產生 HTML 報表
最後就是產生 HTML 報表了! 有兩種方式可以達成,第一種是直接在 console 中下指令,另一個是直接開網頁產生。一般來說,為求方便快速,當然是選後者。
假設 IIS Web Root 為剛剛上面設定的目錄 C:\Inetpub\wwwroot,則進入以下網址即可:
# testSite 為設定檔中指定的 site domain
http://your.site.domain/cgi-bin/awstats.pl?config=testSite
外掛 Plugin
看完產生出來的 HTML 報表後,點了 Country 發現,竟然沒辦法判斷國家? 於是上網找了一下,原來要開啟 GeoIPfree 這個 plugin,因此到設定檔中將此 plugin 的註解拿掉。
不過拿掉之後,還是不能跑,因為 ActivePerl 中的 module 沒辦法正確的執行這個 plugin,因此必須到 CPAN 直接下載 Geo::IPfree module,將其解壓縮後,再把 module 裡面的 Geo 目錄放到 AWStats 的 plugin 目錄中。
如此一來,就可以順利產生 static file 囉! 再回頭看 HTML 報表,也發現 Country 的部分可以成功顯示了!
後記
在官方網站的說明中,指示使用者將檔案放到 Inetpub/wwwroot 下,後來實驗發現,自己設定一個虛擬目錄存放也是可以的!
所以還是設定虛擬目錄比較好管理些.....
後來還有看到透過 FTP 將 log 傳送過來分析,也就是分析 log 的主機跟 Web server 不需要是同一台;此外,似乎還有一堆好用的 plugin 可以用,不過這個部分就等之後有空再來測試囉!
【註】雖然可以自行設定虛擬目錄存放程式,不過 icon 目錄還是必須要放在 webroot 下....(大概是程式設計的問題吧!)
2007年6月2日 星期六
Network Simulator
要架設網路環境來練習,一般人並沒有什麼機會可以接觸到真正不同型態的實體網路,頂多家裡接一接 Hub,了不起架台 Linux server 作 router.....
於是就有 Network Simulator(網路模擬器) 的產生,可以用來建置一個模擬的環境供練習,今天上 google 查了一下,似乎還蠻多的......以下有一則評比:
CISCO認證 --- 思科模擬器完全介紹
好像市面上的模擬器都是以 CISCO 的網路設備與環境為主......上面推薦 Boson 出的模擬器 NetSim
另外我還有在 freshmeat 發現這個稱為「Network Simulator」的模擬器....
等我玩過了,如果覺得就來繼續介紹。
這邊先作個筆記留下來.....
於是就有 Network Simulator(網路模擬器) 的產生,可以用來建置一個模擬的環境供練習,今天上 google 查了一下,似乎還蠻多的......以下有一則評比:
CISCO認證 --- 思科模擬器完全介紹
好像市面上的模擬器都是以 CISCO 的網路設備與環境為主......上面推薦 Boson 出的模擬器 NetSim
另外我還有在 freshmeat 發現這個稱為「Network Simulator」的模擬器....
等我玩過了,如果覺得就來繼續介紹。
這邊先作個筆記留下來.....
訂閱:
文章 (Atom)