查看文章 |
对awstats进行自动更新时出现的两个错误
2008-09-04 14:00
这次在windows下的IIS装awstats后,在执行“自动更新”时,遇到了两个问题,第一个问题是文件权限问题,比较简单;第二个问题则是配置文件的设置问题,这个问题相对来说花了比较多的时间。这篇文章就来解决一下我再配置awstats时遇到的这两个问题。 一、文件权限 在awstats的管理页面点击“自动更新”时,出现了Error: Couldn't open server log file "C:\WINDOWS\system32\LogFiles\W3SVC326953463\ex080904.log" : Permission denied 的错误提示。这个问题比较简单,是由于awstats访问log文件的权限不够造成的,只要给文件添加一个允许IIS读取的帐户就OK了,我这里是给文件夹添加了Everyone的读取权限。 ![]() 二、LogFormat的配置 新的错误提示如下: AWStats did not find any valid log lines that match your LogFormat parameter, in the 50th first non commented lines read of your log. Your log file C:\WINDOWS\system32\LogFiles\W3SVC326953463\ex080904.log must have a bad format or LogFormat parameter setup does not match this format. Your AWStats LogFormat parameter is: 2 This means each line in your web server log file need to have "MSIE Extended W3C log format" like this: date time c-ip c-username cs-method cs-uri-sterm sc-status sc-bytes cs-version cs(User-Agent) cs(Referer) And this is an example of records AWStats found in your log file (the record number 50 in your log): 2008-09-04 05:25:02 GET /images/star02.gif - 116.17.97.104 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.1;+SV1) http://www.51690.com/hotelsearch.aspx 200 614 这个是由于IIS日志格式的设置所引起的错误,按理说,我已经按照网上所提供的方法对IIS的日志格式进行配置了,而且把wwwroot/cgi-bin/awstats.domain.com.conf里边的LogFormat设为了2(1表示apache的日志,2表示iis的日志),应该不会出现日志格式的问题。不过,我还是对比了一下这个错误提示里边的格式要求和IIS日志里边的格式,发现IIS在日志里边竟然没有按照设定的顺序来显示这些参数。 ![]() #Software: Microsoft Internet Information Services 6.0 #Version: 1.0 #Date: 2008-09-04 05:21:46 #Fields: date time cs-method cs-uri-stem cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes 可以明显地发现,IIS并不是按照设置面板里边的顺序来显示相应的参数的。也许就是因为这个原因,awstats按照既定的顺序去匹配对应的参数,却发现格式什么的都不对,因此认为日志的格式是错误的。 那到底应该怎么去设置呢?再conf文件里边有apache的一个例子: # Examples for Apache combined logs (following two examples are equivalent): # LogFormat = 1 # LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot" 也就是说,配置apache的格式时可以有两种方式,一种就是1,另外一种就是把配置项的名称标示出来,并用%放在名称的前面。当时想,是不是在配置文件里边依样画葫芦就可以了呢?不过很遗憾,没有成功。 今天继续google,直接把错误提示输进去,所得的结果很少,而且都没有答案。于是换了另外的查询词:“awstats windows2003 iis”,仅仅想看看是不是针对window2003是不是需要有特别的配置。还好,在一篇繁体字文章《Awstats on Windows 2003安裝步驟》里边,终于找到了我所需要的答案。原来,只要将LogFormat直接设置成在IIS的日志文件里边的内容就可以了,即: LogFormat="date time cs-method cs-uri-stem cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes" 也不需要像apache里边的配置依样加%了。 这么简单的配置,在简体中文网页里边竟然找不到一个正确答案,都在那说要设置成LogFormat=2,实在有些可悲。 接下来的事情就一帆风顺了,终于能实时地统计网站的访问数据了,再给windows系统加一个定时统计的任务就perfect了。 |
最近读者:

