[学习心得]awstats + tomcat的安装(windows版)及二次开发 |  
 
  1、在windows环境下安装activeperl (目前版本5.8),将perl放到你的系统path里
  2、从http://sourceforge.net/projects/awstats/ 下载最新版(我的是6.6)     在网上下载PurePerl.pm,GeoIP.dat
  3、修改tomcat的server.xml
     <Valve className="org.apache.catalina.valves.AccessLogValve"                 directory="logs"  prefix="localhost_access_log." suffix=".txt"                 pattern="combined" resolveHosts="false" fileDateFormat="yyyy-MM-dd"/>
  4、在webapp下建立一个awstats的应用,里面含有WEB-INF的那种,即webapp下建立一个目录,名称为awstats,在awstats下建立一个WEB-INF的目录,目录里含有一个web.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"  version="2.4">  <servlet>      <servlet-name>cgi</servlet-name>      <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>      <init-param>        <param-name>clientInputTimeout</param-name>        <param-value>100</param-value>      </init-param>      <init-param>        <param-name>debug</param-name>        <param-value>6</param-value>      </init-param>      <init-param>        <param-name>cgiPathPrefix</param-name>        <param-value>WEB-INF/cgi-bin</param-value>      </init-param>       <load-on-startup>5</load-on-startup>  </servlet>  <servlet-mapping>      <servlet-name>cgi</servlet-name>      <url-pattern>/cgi-bin/*</url-pattern>  </servlet-mapping>    <session-config>    <session-timeout>      30    </session-timeout>  </session-config>  <welcome-file-list>    <welcome-file>      index.jsp    </welcome-file>    <welcome-file>      index.html    </welcome-file>    <welcome-file>      index.htm    </welcome-file>  </welcome-file-list>
</web-app>
  5、将tomcat的server/lib目录下的servlets-cgi.renametojar文件改名为servlets-cgi.jar
  6、在下载的awstats包里的docs、tools、wwwroot下的classes、js、css、icon等目录(除了cgi-bin目录)下的内容拷贝到tomcat下的awstats目录下,将cgi-bin目录下的内容拷贝到WEB-INF目录下
  7、在cgi-bin目录下找到awstats.model.conf文件,将其复制为(例awstats.chenjie.conf)修改其中内容
LogFile="D:/tomcat5.0/logs/localhost_access_log.%YYYY-0-%MM-0-%DD-0.txt"SiteDomain="chenjie"DirData="."DirCgi="/cgi-bin"DirIcons="/awstats/icon"LoadPlugin="tooltips"LoadPlugin="geoip GEOIP_STANDARD c:/perl/GeoIP.dat" #我放国家信息库的地址 8、将下载到的GeoIP.dat放到上述路径里(例c:/perl/GeoIP.dat),将PurePerl.pm放到cgi-bin/plugins/GEO/IP目录下
 9、运行tomcat,访问http://localhost/awstats/cgi-bin/awstats.pl?config=chenjie 即可访问
10、日志的更新    在dos窗口里运行如下代码    perl awstats.pl -config=chenjie -update(月报默认)    perl awstats.pl -config=chenjie -update -DatabaseBreak=day(日报表)    perl awstats.pl -config=chenjie -update -DatabaseBreak=month(月报表)    perl awstats.pl -config=chenjie -update -DatabaseBreak=year(年报表)    perl awstats.pl -config=chenjie -update -DatabaseBreak=hour(小时报表)11、二次开发    默认awstats页面都是以月为基准的,如果要查看日报表就得修改原程序,让它能自由切换。    将7747行修改为    if($DatabaseBreak eq 'day'){    print "<select class=\"aws_formfield\" name=\"day\">\n";
                foreach (1..31) { my $dayhix=sprintf("%02s",$_); print "<option".($DayRequired eq "$dayhix"?" selected=\"true\"":"")." value=\"$dayhix\">$dayhix</option>\n"; }    print "</select>\n";    }                print "<select class=\"aws_formfield\" name=\"month\">\n";   在7767行插入    if ($DatabaseBreak)  { print "<input type=\"hidden\" name=\"DatabaseBreak\" value=\"$DatabaseBreak\" />\n"; }   将7772行修改为    print "<input type=\"submit\" value=\" $Message[115] \" class=\"aws_button\" />  ";    if($DatabaseBreak ne 'day'){                print "<a href=\"".XMLEncode("$AWScript?")."DatabaseBreak=day&config=$SiteConfig&framename=mainright&year=$nowyear&month=$nowmonth&day=$nowday\">$Message[165]</a>  ";    }else{                print "<a href=\"".XMLEncode("$AWScript?")."DatabaseBreak=month&config=$SiteConfig&framename=mainright&year=$nowyear&month=$nowmonth\">$Message[166]</a>  ";    print "<a href=\"".XMLEncode("$AWScript?")."config=$SiteConfig&framename=mainright&year=$nowyear&month=all\">$Message[167]</a>  ";    }   将8930行修改为               if($MonthRequired eq 'all'){   print "$YearRequired $Message[6]";   }else{    print "$YearRequired $Message[6] $MonthRequired $Message[5] ";    if($DayRequired ne ''){     print "$DayRequired $Message[84]";    }   }
   #print ($MonthRequired eq 'all'?"$Message[6] $YearRequired":"$Message[5] ".$MonthNumLib{$MonthRequired}." $YearRequired");   找到文件cgi-bin/lang/awstats-cn.txt在文件后增加两行message165=日报表message166=月报表message167=年报表
至此awstats安装完毕,简单的二次开发也完成了。
 
 
 
 
 
 
 
  |  
  阅读全文(15786) | 回复(4) | 编辑 | 精华 |    
 
| 回复:awstats + tomcat的安装(windows版)及二次开发 |  
| 
 sunlight(游客)发表评论于2010/5/13 17:52:46  |    我这里总是报perl出错,不知道是不是perl没装好的问题
  |  
  个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |    
 
| 回复:awstats + tomcat的安装(windows版)及二次开发 |  
| 
 君宽(游客)发表评论于2008/11/21 15:56:34  |    现在用的是awstats 6.8,您提及的“二次开发”行号似乎对不上了,能说明一下前后代码是什么么?
  |  
| 个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |    
 
| 回复:awstats + tomcat的安装(windows版)及二次开发 |  
| 
 feng(游客)发表评论于2008/1/8 15:14:06  |    您好,我按照您的文章一步一步配置,第7步做了相应的改动,文件名为awstats.feng.conf,修改其中内容LogFile="D:/tomcat_5.5.25/logs/localhost_access_log.%YYYY-0-%MM-0-%DD-0.txt",为自己tomcat的目录,SiteDomain="chenjie"结果输入http://localhost/awstats/cgi-bin/awstats.pl?config=feng却说找不到服务器,然后我又将SiteDomain改为要统计的站点名,还是不行,请问这是为什么呢,我ActivePerl已装好,能编译脚本,但是输入perl awstats.pl却说找不到文件,请您指教一下哪里出错了呢,先谢谢了。
  |  
| 个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |    
 
| 回复:awstats + tomcat的安装(windows版)及二次开发 |  
| 
 nn(游客)发表评论于2006/12/21 18:57:03  |   
 
  |  
| 个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |    »  1 »  
  | 
| 
   | « | November 2025 | » |  | 日 | 一 | 二 | 三 | 四 | 五 | 六 |   |  |  |  |  |  | 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |  |  |  |  |  |  |  |  
  |   
|   公告 |  
| 
 公司招聘 
招聘java工程师,项目经理,咨询工程师,培训及测试工程师,有意者给我留言  |    |    
 
 
 
 
|   Blog信息 |  
| 
 blog名称:陈捷的blog 日志总数:11 评论数量:47 留言数量:-6 访问次数:141593 建立时间:2005年11月23日  |    |   
 
 
 
  |