在前文 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"] 作用在于能够获得当前网站域名。
php
<?php
// 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字段中添加下面内容:
php
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;
}参考资料: