AWStats正在处理日志文件,但不显示它们

我已经在我的VPS上设置了AWStats,以便更深入地了解到达我的网站的stream量。 按照指示,我跑了手动生成/更新运行良好:

sudo -u www-data ./awstats.pl -config=example.com Create/Update database for config "/etc/awstats/awstats.example.com.conf" by AWStats version 6.9 (build 1.925) From data in log file "/usr/share/doc/awstats/examples/logresolvemerge.pl /var/www/example.com/logs/*-access.log |"... Phase 1 : First bypass old records, searching new record... Searching new records from beginning of log file... Phase 2 : Now process new records (Flush history on disk after 20000 hosts)... Warning: awstats has detected that some hosts names were already resolved in your logfile /usr/share/doc/awstats/examples/logresolvemerge.pl /var/www/example.com/logs/*-access.log |. If DNS lookup was already made by the logger (web server), you should change your setup DNSLookup=1 into DNSLookup=0 to increase awstats speed. Jumped lines in file: 0 Parsed lines in file: 814 Found 0 dropped records, Found 0 corrupted records, Found 0 old records, Found 814 new qualified records. 

它还生成了DatDir:/var/lib/awstats/awstats052010.example.com.txt中的文件,其中包含我期望的内容。

但是当我访问:example.com/awstats/awstats.pl它告诉我

 Last Update: Never updated (See 'Build/Update' on awstats_setup.html page) 

其余的页面是空白的。 我很确定我正确地设置它,但现在我无法弄清楚为什么会发生这种情况。 希望有人更聪明,那么我可以帮助我。

两种可能性。

运行awstats时创build的文件的权限不是设置为允许您的Web服务器读取这些文件,也就是说,它们由www-data以外的用户拥有,并且具有640的权限。

要么

正则expression式设置,以便主机名期望URL为domain.com,您正在访问www.domain.com(不太可能基于您的sudo -u www-data方法的事实)

首先尝试findawstats / tools目录并执行更新所有脚本。

 /usr/share/awstats/tools/awstats_updateall.pl now 

它会告诉你清楚,如果任何这些文件存在任何权限问题:服务器日志文件,awstats conf文件,写入数据的awstats目录。

否则,如果它正确执行,它将更新统计信息Web UI中的“上次更新”信息。

而且,最好安排一个cron作业,使用新创build的日志条目来定期更新AWSatsat数据库。

对我来说, selinux是一个问题。

 grep awstats.pl /var/log/audit.log 

显示由httpd_t上下文发出的命令awstats.pl的 getattrreadopenioctl操作的拒绝语句。

为了允许这些操作,我把这些行通过audit2allow像这样:

 audit2allow -m 'httpd_awstats' <<EOF <paste the regarding lines from /var/log/audit/audit.log here> EOF 

创build一个selinux策略

 semodule -i httpd_awstats.pp 

激活该政策

如果你使用centos 7 /var/log/audit/audit.logjournald取代。 从那里获取日志使用以下命令

 journalctl -xln 50 --no-pager | grep awstats.pl 

50是从日志中获取的最后一行的数量