用awstats和Calendar按日分析网站日志
支付宝内搜索 9155838 即可领现金红包 每天都能领哦
公司网站换了一个新的服务器,这次我想顺便装上awstats,用于统计数据。tar zxvf awstats-6.6.tar.gz
然后把文件拷贝到/usr/local/awstats目录
mv awstats-6.6 /usr/local/awstats
创建awstats默认的数据存放目录(缺省是:/var/lib/awstats/)
mkdir -p /var/lib/awstats
cd /usr/local/awstats/tools
perl awstats_configure.pl
回答几个问题,就可以了。
然后我们要修改一下awstats的配置文件(位于/etc/awstats目录),让它和apache能配合起来。
我的apache日志采用的是combined格式,并用cronolog程序按天分隔,如下:
CustomLog "|/usr/local/sbin/cronolog /data/weblog/%Y/%m/%d/access" combined
所以awstats配置文件要做适当修改:
修改一下LogFile="/data/weblog/%YYYY-24/%MM-24/%DD-24/access"选项
修改一下SiteDomain和HostAliases选项
修改一下LoadPlugin="decodeutfkeys"选项
最好再装上GeoIP插件,具体步骤可以搜索
最后不要忘记了在cron里加入自动更新:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -databasebreak=day -config=your.domain.com
这里我加入-databasebreak=day选项是为了适应大访问量,否则awstats默认是按月归档的,会很慢,修改之后就是按天归档的了,不过这样的话,浏览报表又成了问题,因为awstats按天浏览报表很不方便,解决方法是参考车东的文章:
http://www.chedong.com/blog/archives/001293.html
http://www.chedong.com/blog/archives/001292.html
附录:车东文章中提供的calendar代码多少有点问题,这里我贴上我修改的版本。PHP Calendar是一个最方便的可扩展PHP类包。
index.php:
<?phpinclude('calendar.php');
classMyCalendarextendsCalendar{
functiongetDateLink($day,$month,$year)
{$link='';
if(mktime(0,0,0,$month,$day,$year) <mktime(0,0,0,date('m'),date('d'),date('Y')))
{$link='awstats.php?year='.$year.'&month='.$month.'&day='.$day;
}
return$link;
}
functiongetCalendarLink($month,$year)
{
return'?month='.$month.'&year='.$year;
}
}$cal= newMyCalendar();$chineseMonths= array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");$chineseDays= array ("日","一","二","三","四","五","六");$cal->setMonthNames($chineseMonths);$cal->setDayNames($chineseDays);$cal->setStartDay(1);$month=array_key_exists('month',$_GET) ?intval($_GET['month']) :date('m');$year =array_key_exists('year',$_GET) ?intval($_GET['year']) :date('Y');$content=$cal->getMonthView($month,$year);?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>Awstats统计</title>
<style>
.calendarHeader {
font-weight: bolder;
color: #CC0000;
background-color: #FFFFCC;
}
.calendarToday {
background-color: #FFFFFF;
}
.calendar {
background-color: #FFFFCC;
}
</style>
</head>
<body>
<?phpecho$content;?></body>
</html>
awstats.php:
<?php
$year =array_key_exists('year',$_GET) ?intval($_GET['year']) :date('Y');$month=array_key_exists('month',$_GET) ?intval($_GET['month']) :date('m');$day =array_key_exists('day' ,$_GET) ?intval($_GET['day']) :date('d');$url='&databasebreak=day&year='.$year.'&month='.$month.'&day='.$day;
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html lang='cn'>
<head>
<meta name="robots" content="noindex,nofollow">
<meta http-equiv="content-type" content="text/html; charset=gbk">
<title>Statistics</title>
</head>
<frameset cols="240,*">
<frame name="mainleft" src="/awstats/awstats.pl?framename=mainleft<?phpecho$url;?>" noresize="noresize" frameborder="0" />
<frame name="mainright" src="/awstats/awstats.pl?framename=mainright<?phpecho$url;?>" noresize="noresize" scrolling="yes" frameborder="0" />
<noframes><body>Your browser does not support frames.<br />
You must set AWStats UseFramesWhenCGI parameter to 0
to see your reports.<br />
</body></noframes>
</frameset>
</html>
具体链接什么的可能要改改,其他没什么了。
作者:老王 出处:http://hi.baidu.com/thinkinginlamp/blog/item/3a571d95d716f8087bf480a4.html
更新于:2007-12-19 21:06:46 栏目:技术技巧 关键词:网站,日志,分析
本站使用「署名 4.0 国际」创作共享协议,可转载、引用,但需署名作者且注明文章出处