分类: LINUX
2010-03-06 13:05:07
Awstats安装需求:
文件:
shell.rar
大小:
2KB
下载:
下载
1. Awstats的日志报告生成是通过perl脚本实现,所以系统需要安装有perl。
2. Nginx对perl的支持并不好,官网也不建议在nginx中调有perl脚本,所以使用perl-fcgi连接nginx与perl。(跟spawn-fcgi连接nginx与php 是一个原理)。
一.安装nginx的perl-fcgi支持
安装Perl-fcgi模块:
wget http:///modules/by-module/FCGI/FCGI-0.67.tar.gz
tar -zxvf FCGI-0.67.tar.gz
cd FCGI-0.67
perl Makefile.PL
make && make install
也可以使用如下方法安装:
perl -MCPAN -e 'install FCGI'
安装FCGI-ProcManager
wget http://search.cpan.org/CPAN/authors/id/G/GB/GBJK/FCGI-ProcManager-0.18.tar.gz
tar -xzxf FCGI-ProcManager-0.18.tar.gz
cd FCGI-ProcManager-0.18
perl Makefile.PL
make
make install
Perl的FastCGI启动脚本:见perl-fcgi.pl
为nginx添加fastcgi支持:
location ~* .*\.pl$
{
include fcgi_perl_params;
}
再装fcgi_perl_params复制到nginx.conf所在目录。
在per-fcgi.pl有这么一行:
$socket = FCGI::OpenSocket( "/var/nginx/run/fcgi_perl.sock", 10 )
/var/nginx/run/fcgi_perl.sock要保证/var/nginx/run这个目录存在,或者替换其它位置。
同时fcgi_perl_params文件中的fastcgi_pass unix:/var/nginx/run/fcgi_perl.sock;也要作相应的更改
启动perl-fcgi.sh脚本
./perl-fcig.pl &
至此,nginx添加fastcgi支持完成,为了使每次服务器重启,per-fcgi支持都生效,需将perl-fcgi.sh脚本放入启动脚本。
二.安装awstats
下载awstats-6.95.tar.gz。解压
tar xvf awstats-6.95.tar.gz
awstats的目录结构:
awstats
|----doc(帮助文档)
|----wwwroot(站点目录)
|----tools(一些perl脚本)
|----README.TXT
设置awstats站点(我这里awstats的存放目录是/opt/dtweb/)
location /awstatsicon/
{
alias /opt/dtweb/awstats/wwwroot//icon/;
}
location / awstatsclasses /
{
alias /opt/dtweb/awstats/wwwroot/awstatsclasses /;
}
location /awstatscss/
{
alias /opt/dtweb/awstats/wwwroot/awstatscss/;
}
location /awstats/
{
alias /opt/dtweb/awstats/wwwroot/cgi-bin/;
}
设置nginx日志格式(与apacher的combined日志格相同)
修改log_format为如下:
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';
配置awstats.conf
从/opt/dtweb/awstats/wwwroot/cgi-bin/下复制awstats.model.conf到/etc/awstats.dtedu.conf.
cp /opt/dtweb/awstats/wwwroot/cgi-bin/awstats.model.conf /etc/awstats.dtedu.conf
vi /etc/awstats.dtedu.conf.
以下几个参数是必须设置的:
LogFile=”<日志路径>” 这里是:LogFile="/var/nginx/logs/dtedu.access.log"
LogType=”<日志类型>”. 默认是W,即weblog, 不需要修改
LogFormat=”<日志格式>” 默认是1, 即apache的combined格式。因为我们已经设置日志格式为apacher的combined格式,所以不需要修改
SiteDomain=”<站点名>” 站点对外访问的域名。例如。
参数的具体说明与以及其它一些参数的说明,请参见docs.
配置完成后,执行以下命令生成dtedu静态的数据文件:
perl awstats.pl -config=<配置文件站点名> -update
这里的是:perl awstats.pl -config=dtedu –update (配置文件为awstats.dtedu.conf)
因为生成的是静态数据文件,所以要将该命放放入crontab中定时执行,以便我们获取动态日志信息。
至从,输入网址> /awstats.pl?config=dtedu查看站点dtedu的日志结果。
碰到问题
在使用unix socket时,碰到两个问题
1.写socket的目录没有写权限,添加上解决
2.nginx连不上socket, 看日志提示没有权限,在创建了socket后添加一句
chmod 755 /var/nginx/run/fcgi_perl.sock