在 Windows 主機設定 AWStats 流量分析軟體

1. 安裝 ActivePerl 5.8

    1.1 安裝 Perl
   
        到這裡下載:http://www.activestate.com/Products/activeperl/
   
        請下載 ActivePerl 5.8 AS 的版本進行安裝。( AS 的下載檔案是 *.zip 格式 )
       
            解壓縮後執行 Install.bat 即可

        P.S. 因為 ActiveState 網站上的 MSI 封裝有問題,在我的 Win2k3 與 WinXP 都沒辦法安裝!

    1.2 安裝三個重要的 Perl 模組

        在 DOS 模式下直接執行以下三個指令即可:
   
        ppm install Geo::IP::PurePerl
        ppm install Geography::Countries
        ppm install IP::Country

        # 到 http://www.maxmind.com/app/geoip_country 下載 GeoIP.dat
       
        # 下載點(壓縮檔)
        http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz
   
        下載後解壓縮至 C:\Perl 目錄下
    
        # P.S. ActivePerl 5.8 已經內建 Encode 模組 ( 用於 decodeutfkeys 外掛用的 )

2. 安裝 AWStats 6.7

    閱讀安裝設定文件: C:\Program Files\AWStats\docs\awstats_setup.html

    修正程式 Bug
   
        C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.pl
       
            Line 5808:     foreach my $code (split(/,/,$langlist)) {    # Search for a valid lang in priority
           
            這行的底下新增一行,才能正確自動解析不同語系!
       
            $code=lc($code);
   
3. 設定 Internet Information Server (IIS) 6.0

    3.1 修正 Log 格式

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

    3.2 暫時將網站關閉
   
    3.3 將現有的 Log 移至其他目錄備份或直接刪除

    3.3 重新啟動網站
   
    3.4 新增虛擬目錄
   
        別名:cgi-bin
        路徑:C:\Program Files\AWStats\wwwroot\cgi-bin
        權限:讀取、執行
       
        別名:icon
        路徑:C:\Program Files\AWStats\wwwroot\icon
        權限:讀取
   
    3.5 設定「網頁設定延伸」
   
        將 Perl CGI Extension 設為「允許」
       
4. 設定 AWStats

    4.1 進入 C:\Program Files\AWStats\wwwroot\cgi-bin 目錄
   
        將 awstats.model.conf 複製一份並取名為 awstats.blog.miniasp.com.conf
   
    4.2 修改 awstats.blog.miniasp.com.conf
   
        # 設定 Log 檔的位址
        LogFile="C:\WINDOWS\system32\LogFiles\W3SVC1137020421\ex071115.log"
   
        # 設定 Log 的格式為 IIS 的 Format
        LogFormat="date time cs-method cs-uri-stem cs-uri-query cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes"
       
        ※注意※ 如有格式不同,請開啟 LogFile 後,將「第四行」的 Fields 欄位設定在 LogFormat 參數即可!!
        #Fields: date time cs-method cs-uri-stem cs-uri-query cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes
       
        # 設定網站的網址
        SiteDomain="blog.miniasp.com"
       
        # 設定其他跟網站網址的別名
        HostAliases="localhost 127.0.0.1 REGEX[blog\.miniasp\.com$]"
       
        # 設定是否解析完 Log 後直接刪除原始 Log 紀錄
        PurgeLogFile=0
       
        # 設定可以從網站更新 Log 分析紀錄
        AllowToUpdateStatsFromBrowser=0
       
        # 設定 Host IP 反查 ( 關閉此選項,因為我們要用更有效率的 IP2Country 做反查 )
        DNSLookup=0
       
        # 顯示三國的語系可供使用者切換 ( tw: 繁體中文, en: 英文, cn: 簡體中文 )
        ShowFlagLinks="tw en cn"

        # 預設顯示「繁體中文」
        Lang="tw"
       
        # 讓統計的 URL 包含 QueryString 參數
        URLWithQuery=1
       
        # 讓統計來源的 URL 包含 QueryString 參數
        URLReferrerWithQuery=1
   
        # 開啟 GeoIP 反查模組
        LoadPlugin="geoip GEOIP_STANDARD C:/Perl/GeoIP.dat"
        # 開啟 IP 反查的外掛
        #LoadPlugin="geoipfree"
   
        # 開啟 decodeutfkeys 外掛
        LoadPlugin="decodeutfkeys"
   
        # 關閉 KeyWordsNotSensitive 才能讓中文顯示正常!
        KeyWordsNotSensitive=0
       
        # 設定這個才能讓 IIS 的 Log 時間正確顯示
        LoadPlugin="timezone +8"
       
5. 更新 AWStats 統計資訊

    第一次先手動更新
    "C:\Program Files\AWStats\tools\awstats_updateall.pl" now -configdir="C:/Program Files/AWStats/wwwroot/cgi-bin" -awstatsprog="C:/Program Files/AWStats/wwwroot/cgi-bin/awstats.pl"

    # C:\Program Files\AWStats\wwwroot\cgi-bin>
    awstats.pl -config=blog.miniasp.com -update -showsteps -showcorrupted -showdropped

    更新成功後就可以先進入 AWStats 看連線狀態了
   
6. 使用 AWStats

    6.1 連線至 http://blog.miniasp.com/cgi-bin/awstats.pl
   
        預設的設定下,會要求輸入 Windows 的帳號、密碼認證!
   
        若要匿名登入看分析報表,需要修改目錄權限
       
            修改 C:\Program Files\AWStats\wwwroot 目錄的權限
           
                新增「網際網路 Guest 帳戶」( IUSR_machinename ) 並賦予「完全控制」權限

7. 設定排程定時更新網站流量統計

    7.1 修正 awstats.blog.miniasp.com.conf 設定檔,調整 LogFile 的路徑
   
        LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1137020421/ex%YY-24%MM-24%DD-24.log"
   
        %YY-24    代表從現在算起24小時前的「年份」
        %MM-24    代表從現在算起24小時前的「月份」
        %DD-24    代表從現在算起24小時前的「日期」
       
        備註:也就是我們要解析「前一天」的 Log 檔!
   
    7.1 新增「排定的工作」
   
        執行:"C:\Program Files\AWStats\tools\awstats_updateall.pl" now -configdir="C:/Program Files/AWStats/wwwroot/cgi-bin" -awstatsprog="C:/Program Files/AWStats/wwwroot/cgi-bin/awstats.pl"
       
        開始的位置:"C:\Program Files\AWStats\tools"
       
        執行身份:MachineName\Administrator
       
        排程:每天上午 1:00 執行一次

    7.2 修改 AWStats 的 LogFile 路徑
   
        # 設定為每天分析的時候,抓取「前一天」的 Log 檔
        LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1137020421/ex%YY-24%MM-24%DD-24.log"

  

此文章由 will 發表於 2007/11/30 下午 07:57:00

永久連結 | 評論 (10) | 此文章的RSSRSS comment feed |

分類: 系統管理

標籤: ,

收藏:

加速 VBA 對文件的操作速度

我們為了大量更新 Office 文件內容,加速更新速度的方式,就是修改 Application.ScreenUpdating = False

因為你每做一個指令,就會造成畫面更新,如果你的文件有上千頁,速度就會被拖的很慢,所以最快的方式就是先通知 Office 先不要更新畫面,等做完再更新!

 Sub 刪除文件中所有圖片()
 '
 ' 範例:刪除文件中所有圖片
 '
 '
     Application.ScreenUpdating = False
    
     Selection.HomeKey Unit:=wdStory
    
     Selection.Find.ClearFormatting
     With Selection.Find
         .Text = "^g"
         .Replacement.Text = ""
         .Forward = True
         .Wrap = wdFindContinue
         .Format = False
         .MatchCase = False
         .MatchWholeWord = False
         .MatchByte = True
         .MatchWildcards = False
         .MatchSoundsLike = False
         .MatchAllWordForms = False
     End With
    
     While Selection.Find.Execute
         Selection.Delete Unit:=wdCharacter, Count:=1
     Wend
    
     Application.ScreenRefresh
    
     Application.ScreenUpdating = True
    
 End Sub

 

  

此文章由 will 發表於 2007/11/29 下午 11:19:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: Office | VBA | Tips

標籤: , ,

收藏:

如何用 C# 將資料匯出到 Excel

我們常常會做「匯出」的功能,但是匯出的時候有一種狀況會出問題,就是如果資料的第一個字元是 0 但是你必須要留著的話,用 CSV 格式匯出再用 Excel 打開後,前面的 0 就會不見(被 Excel 視為是數字格式而吃掉了)。

這裡有一些連結說明各種不同的作法,蠻不錯的! 

A Very Easy to Use Excel XML Export Library
http://www.codeproject.com/KB/office/excelxmllibrary.aspx
 

How to transfer data to an Excel workbook by using Visual C# 2005 or Visual C# .NET
http://support.microsoft.com/kb/306023/en-us

如何將資料傳送至 Excel 活頁簿藉由使用 Visual C# 2005 或 Visual C# . NET
http://support.microsoft.com/kb/306023/zh-tw

Considerations for server-side Automation of Office
http://support.microsoft.com/kb/257757/en-us

Office 伺服器端自動化的考量因素
http://support.microsoft.com/kb/257757/zh-tw

How to automate Microsoft Excel from Visual Basic .NET
http://support.microsoft.com/kb/301982/en-us

如何從 Visual Basic . NET Microsoft Excel 自動化
http://support.microsoft.com/kb/301982/zh-tw

當然還有其他方式,我以前用的方式是在 Excel 中開一個新檔案,把你資料庫中的欄位都打在第一列,然後輸入一筆資料到第二列,當然也可以新增好幾個工作表(Worksheet),之後另存新檔成 XML 格式,你再去看這個檔案的內容(XML格式),格式很容易了解,你照著這個格式重新將從資料庫讀出來的資料轉成這個 Excel XML 格式就可以指定每一個儲存格的格式了!

  

此文章由 will 發表於 2007/11/28 下午 12:32:00

永久連結 | 評論 (1) | 此文章的RSSRSS comment feed |

分類: .Net | C#

標籤: , , ,

收藏:

回味三年前寫的文章: 我的工作心得與觀察 (軟體)

今天太忙了,沒時間整理資料,但看到我三年前寫的一篇文章覺得很有意思,所以當成今天的主題。以下的文章是三年寫的文章,原汁原味的重現:

我從事軟體開發與銷售已經快 6 年了
大部分做的事都跟網路有關
與不少企畫、設計、工程師合作過
到現在我還是跟多年前的想法一樣
覺得網路軟體的市場太大、太雜了
永遠有其夾縫市場可以生存
但是卻很不容易做大
軟體公司只要稍微大一點
馬上會受到極大的競爭壓力
沒有實力的公司很容易就淘汰出局
這其中有很多很多的因素
包括大廠的產品行銷優勢
SOHO工作室的價格競爭
或是人才掌握不易.... 太多了。
這種不上不下的狀態只要持續一段時間
大部分的人都會選擇放棄
屈就於安穩的工作或是乖乖的當SOHO族
像是一間手工藝的軟體或設計工廠一樣
每天面對不同的客戶相同的抱怨
穩定又不穩定的收入
想放手一搏
又害怕自己年紀越來越大
記憶力越來越差
年輕人越來越強
怕東怕西的真的會越來越沒勁

我發現
軟體人越老會越懶
所以很少有人到 40 歲還在寫程式的
所以在台灣軟體業一直都是一群沒經驗的年輕人在拼
也沒有不好啦
年輕人拼是應該的
我覺得我以前寫程式打拼的程度還真的很恐怖
除了練出一身好功力
也發現了自己的熱愛
不過傳承才真的是大問題
"程式"本身沒有傳承的價值
很少有人喜歡接別人的程式寫下去
應該是 Domain Know-How 與 Software Architecture 才是價值所在
該傳承的應該也是這些
年輕人要磨的是 Coding 的功力
這是基本功,就像練武功要先學好紮馬步一樣

不知為何
寫 Code 的人漸漸跑去當業務了
這才發現原來 Programmer 變成 Sales 是這麼一回事
有些人一輩子轉不過來
有些人轉的成就十足
不管如何
寫過 Code 的表達能力就是比較精準
我不是說比較好喔!而是「精準」!
跌跌撞撞之後才會知道何謂「銷售」

再接下來
做業務的開始去做生意了
這才發現做生意就是你情我願嘛
你所學的一切都拿出來亂用一通
就是做生意了
做生意沒有保證成功的
但學的越多你能發揮的子彈就越多
亂槍打鳥總有一發會中
慢慢的...你就會懂的瞄準了 !
並且找到你的定位與使命

所以我也常在說
創造是一樣永遠不吃虧的投資
你所失去的每一分
都是未來成就的空間
你所踏出的每一步
都是通往成功的道路
你所成就的每一次
都是持續前往的動力
你所獲得的喜悅
就是你成功的最佳寫照

  

此文章由 will 發表於 2007/11/27 下午 10:43:00

永久連結 | 評論 (0) | 此文章的RSSRSS comment feed |

分類: 心得分享

標籤:

收藏:

ASP.NET 3.5 要如何安裝在 IIS 5.0/6.0 中

這幾天在玩 .Net 3.5,發現了一個疑問,就是在 IIS 裡面為什麼看不到 ASP.NET 3.5 的選項?!且以前在 .NET 2.0 的時候有個 aspnet_regiis.exe 的執行檔在 .NET 3.5 也看不到!!

後來我才搞懂,原來 ASP.NET 3.5 只是使用 .Net Framework 3.5 的組件(assembly)而已!整個核心的架構還是建立在 .NET 2.0 之上,.NET Framework 的 API 都沒變,只是到了 .NET 3.5 很多 assembly 都重新寫過了,且執行的速度也比 .NET 2.0 的組件還快。

如果你用 Visual Studio 2008 開一個網站專案,你開啟 web.config 會發現在 <assemblies> 區段中出現了一堆 assembly 的定義,其版本都是 3.5.0.0

  <compilation debug="true">
   <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
   </assemblies>
  </compilation>

所以 ASP.NET 3.5 的程式要安裝在 IIS 上不需要特別指定 ASP.NET 3.5 的版本,繼續沿用 ASP.NET 2.0 的版本即可,但作業系統本身必須要先安裝 .Net Framework 3.5 runtime 就是了!
如果你要知道你的程式是用什麼 .NET 版本的話,可以用以下程式碼取得:
[code:html]


<%= System.Environment.Version  %>


[/code]
  

此文章由 will 發表於 2007/11/26 上午 10:56:00

永久連結 | 評論 (3) | 此文章的RSSRSS comment feed |

分類: .Net | ASP.NET | 系統管理

標籤: ,

收藏: