公司网站换了一个新的服务器,这次我想顺便装上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:

<?php
include(‘calendar.php’);

class MyCalendar extends Calendar
{
function
getDateLink($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 . ‘&amp;month=’ . $month . ‘&amp;day=’ . $day;
}

return $link;
}

function getCalendarLink($month, $year)
{
return
‘?month=’ . $month . ‘&year=’ . $year;
}
}

$cal = new MyCalendar();

$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>
<?php echo $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 = ‘&amp;databasebreak=day&amp;year=’ . $year . ‘&amp;month=’ . $month . ‘&amp;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<?php echo $url; ?>” noresize=”noresize” frameborder=”0″ />
<frame name=”mainright” src=”/awstats/awstats.pl?framename=mainright<?php echo $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

Tags:

http://blog.dngz.net/433.htm

我想发表对此文的评论 ...(没有弹出错误信息则说明评论成功,需要等待审核.)