Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1186119
  • 博文数量: 253
  • 博客积分: 5892
  • 博客等级: 大校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-24 14:20
文章分类

全部博文(253)

文章存档

2012年(98)

2011年(155)

分类: LINUX

2011-10-16 11:38:06

本文转载自:https://wangyan.org/blog/howto-setup-awstats-and-jawstats.html

Awstats 是一款基于 Perl 的 WEB 日志分析工具,而 JAWStats 是一款基于 PHP 的统计套件,旨在为 Awstats 提供更为精美图形界面。

一、安装和配置 Awstats

Awstats 安装非常简单,但必须先确认你服务器上 Perl 的环境已经就绪。
考虑到网站流量不大,每日一次的 Nginx 日志切割也可以省略了。。。

1. 下载与安装
1
2
3
4
wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz
tar -zxf awstats-7.0.tar.gz
mv awstats-7.0 /usr/local/awstats
chown -R root:root /usr/local/awstats
2. 生成配置文件

使用 awstats_configure.pl 向导工具,生成每个网站的配置文件。

1
2
cd /usr/local/awstats/tools
./awstats_configure.pl

1) 输入 none 然后回车
2) 输入 y 确认创建配置文件
3) 输入配置文件名称,一般输入域名。

4) 配置文件使用默认路径 /etc/awstats
5) 按回车继续
6) 按回车完成配置文件的创建

3. 修改配置文件

Awstats 支持基于日期变化的动态日志文件,具体可以看注释。

1
2
vim /etc/awstats/awstats.wangyan.org.conf
LogFile="/usr/local/nginx/logs/wangyan.org/access.log"51行左右)
4. 生成 Awstats 统计数据
1
2
3
4
5
6
#创建存放数据的目录
mkdir -p /var/lib/awstats
#方法一:为指定的网站生成数据。
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=wangyan.org
#方法二:为所有网站生成数据
/usr/local/awstats/tools/awstats_updateall.pl now
5. 输出统计结果静态页面 (可选)

若在 Apache 上,那就可以直接打开网页查看统计了,当然 Nginx 也可以省略此步,因为 JAWStats 还尚未出场呢。。。

1
2
mkdir -p /var/www/awstats/wangyan.org # 创建存放结果的目录
/usr/local/awstats/tools/awstats_buildstaticpages.pl -update -config=wangyan.org -lang=cn -dir=/root/tmp -awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl

/usr/local/awstats/tools/awstats_buildstaticpages.pl Awstats 静态页面生成工具
-update -config=wangyan.org 更新配置项
-lang=cn 语言为中文
-awstatsprog=/usr/local/awstats/wwwroot/cgi-bin/awstats.pl Awstats 日志更新程序路径。

6. 配置 Awstats 自动运行

这个好办,设为每小时更新一次。

1
2
crontab -e
0 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
二、安装和配置 JAWStats

JAWStats 是基于 Awstats 统计数据的,但其界面更为强悍,有了JAWStats 你甚至可以抛弃第三方统计了。

2.1. 下载与安装
1
2
3
4
5
wget http://static.jawstats.com/src/jawstats-0.7beta.tar.gz
mkdir /var/www/stats/
tar -zxf jawstats-0.7beta.tar.gz -C /var/www/stats/
cd /var/www/stats/
cp config.dist.php config.php
2.2. 修改配置文件

官方配置说明见:http://www.jawstats.com/documentation
jawstats 是支持多站点的,每个 $aConfig 对应一个站点,并可以自由切换。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

// core config parameters
$sDefaultLanguage = "zh-cn"; // 设置默认语言
$sConfigDefaultView = "thismonth.all";
$bConfigChangeSites = false; //是否可以更换站点
$bConfigUpdateSites = false; //是否可以更新统计数据
$sUpdateSiteFilename = "xml_update.php";
 
// individual site configuration
$aConfig["site1"] = array( // site1 网站域名(注意不能乱填)
"statspath" => "/var/lib/awstats/", //awstats 统计数据目录
"updatepath" => "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl/", //用于更新统计数据
"siteurl" => "", //点击首页标题后会前往这个地址
"sitename" => "wangyan.org", //首页标题
"theme" => "default",
"fadespeed" => 250,
"password" => "my-1st-password", //更新统计数据需要输入这个密码
"includes" => "",
"language" => "zh-cn"
);
?>
2.3. 安装中文语言包

首先下载 jawstats 多国语言包,解压缩后上传替换 lang 目录。

需要注意的是,你要修改 translations.php 文件的编码为UTF-8,不然全乱码了。
另外修改汉化文件,也是translations.php,不能只修改zh-cn.js文件。

2.4. 设置JAWStats访问密码

Nginx 支持为目录添加密码认证,若不想所有人都能访问到你的统计结果,那继续下面步骤吧。。。

1) 使用apache 的 htpasswd 来创建密码文件。

1
语法:htpasswd -b -c /home/wangyan/.htpasswds 用户名 密码

2) 在Nginx的server字段内添加以下内容

1
2
3
4
5
6
7
8
9
10
11
location ~ /stats {
root /var/www;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
auth_basic "JAWStats";
auth_basic_user_file /home/wangyan/.htpasswds;
}

最后大功告成,输入 便可以访问了。

参考资料 :

1. http://www.ibm.com/developerworks/cn/linux/l-cn-awstats-nginx/


JAWStats 多个站点配置

在前文《Nginx 日志分析 AWStats + JAWStats 安装配置》中说过 JAWStats 是支持多个站点的,但若直接添加则存在一个很大的缺陷,只要能看到自己网站统计报告的,那么别人的统计报告也能查看。那有没办法实现,每个网站的统计都相互独立,只能各自查看呢?

答案显然是肯定的,方法也有两种,一是给JAWStats 打个补丁,详细方法见:《How To: AWStats und JAWStats mit mehreren Benutzern – Konfiguration inkl. Patch und Skript》,二是稍微修改一下 config.php 文件即可。毫无疑问,我选择了第二种不破坏原程序的做法。

下面是完整设置,关键在于"siteurl"和"sitename"的设置,其中 $_SERVER["SERVER_NAME"] 作用在于能够获得当前网站域名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

// core config parameters
$sDefaultLanguage = "zh-cn";
$sConfigDefaultView = "thismonth.all";
$bConfigChangeSites = false;
$bConfigUpdateSites = false;
$sUpdateSiteFilename = "xml_update.php";
 
// individual site configuration
$aConfig[ $_SERVER["SERVER_NAME"] ] = array(
"statspath" => "/var/lib/awstats/",
"updatepath" => "/usr/local/awstats/wwwroot/cgi-bin/awstats.pl/",
"siteurl" => "http://".$_SERVER['SERVER_NAME'],
"sitename" => $_SERVER["SERVER_NAME"],
"theme" => "default",
"fadespeed" => 250,
"password" => "123456",
"includes" => "",
"language" => "zh-cn"
);
?>

完成后,你还需要在 Nginx 的每个server字段中添加下面内容:

1
2
3
4
5
6
7
8
9
10
11
location ~ /stats {
root /var/www;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
auth_basic "JAWStats";
auth_basic_user_file /home/wangyan/.htpasswds;
}

参考资料:

1.


阅读(1662) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~