Windows+Apache 下运行perl脚本

软硬维护No Comments »

之前介绍安装awstats的环境是Windows+IIS,日前在一台Windows+Apache的机子上安装awstats却出现了一些小问题。在进行完一些基础的配置之后,才发现浏览awstats.pl的时候,出来的它的源码而不是日志统计的结果。归结原因,在于Apache并不是直接就支持perl脚本的,还需要对其httpd.conf文件进行下配置。

  1. 首先还是要安装ActivePerl。 按照默认配置安装在c:\perl目录下。
  2. 配置perl脚本的运行目录。一般情况下在http.conf中有这样一句:
    #ScriptAlias /cgi-bin/ “C:/Apache/cgi-bin/”
    去掉#,表示cgi-bin目录为perl脚本的目录。这意味着你需要把perl脚本放到这里才能运行。
    如果你希望在任何目录下的脚本文件都可以运行,就要按照下面的配置。
  3. 找到这行:Options Indexes FollowSymLinks
    修改为
    Options Indexes FollowSymLinks ExecCGI
  4. 找到这行:#AddHandler cgi-script .cgi
    修改为
    AddHandler cgi-script .cgi .pl
  5. 修改perl脚本文件中的perl path。将perl脚本的首行修改为 #!c:\Perl\bin\perl。否则会出现浏览器500错误。

这样就OK了。再说一下用awstats分析Apache的日志。由于Apache日志文件不是按天分割的,需要首先用cronolog对Apache的日志文件格式进行改造,然后再用于awstats分析。

Related posts

用cronolog处理Apache HTTP Server log

软硬维护No Comments »

Apache有两个log文件access.log 和error.log。error.log中存放诊断信息和处理请求中出现的错误,由于这里经常包含了出错细节以及如何解决,如果服务器启动或运行中有问题,首先就应该查看这个错误日志。access.log 访问日志中会记录服务器所处理的所有请求。

在默认情况下,log记录存在于这两个单独的文件中,当网站访问量较大或者错误信息较多的时候,log文件的大小会急速增长。一般每10000个请求,访问日志就会增加1MB或更多。在这种情况下,如果当日志文件过大,就很难通过日志文件来分析。而且,对于AWStats这样的日志分析软件,它要求日志文件是按日存储的。

Apache httpd可以通过管道将访问记录和出错信息传递给另一个进程,而不是写入一个文件。只要用管道操作符”|“后面跟一个可执行文件名,就可以使这个程序从标准输入设备获得事件记录。Apache在启动时,会同时启动这个管道日志进程,并且在运行过程中,如果这个进程崩溃了,会重新启动这个进程(所以我们称这个技术为”可靠管道日志”)。

Apache推荐使用cronolog程序对log文件进行截断并按日存放。根据web服务器的操作系统,下载win32 version的cronolog程序。

  1. 复制cronolog.exe to /apache/bin/
  2. 在httpd.conf中:
    用CustomLog “|bin/cronolog.exe logs/global/access%Y%m%d.log” combined
    替换 CustomLog logs/access.log
    用ErrorLog “|bin/cronolog.exe logs/global/error%Y%m%d.log”
    替换 ErrorLog logs/error.log
  3. 重启Apache

Related posts

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS 登录