awstats进行自动更新时出现的两个错误

 这次在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的读取权限。
添加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在日志里边竟然没有按照设定的顺序来显示这些参数。
可以发现,在这里我设置的显示参数依次是: date、time、c-ip、cs-username、cs-method、cs-uri-stem等,不过在具体的日志文件里边,却显示着:
#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了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值