How I install awstats
- Based off the Ubuntu awstats wiki page. First install packages:
sudo apt-get install awstats libnet-ip-perl libnet-dns-perl# Edit /etc/awstats/awstats.conf, modify LogFile to merge archived data, LogFormat to use Apache log format (see below), and LoadPlugin="ipv6" :
LogFile="perl /usr/share/awstats/tools/logresolvemerge.pl /var/log/apache2/other_vhosts_access.log /var/log/apache2/other_vhosts_access.log.1 /var/log/apache2/other_vhosts_access.log.2.gz |"# Create a crontab in /root/crontab to set world-readable permissions to your log files (otherwise you have to run awstats as root):
# every hour at 0:17 every day, fix /var/log/apache2 permissions for awstats 17 */1 * * * chmod a+r /var/log/apache2/* > /var/log/apache2/fix_permissions.log 2>&1# Create a folder to store generated awstats HTML:
mkdir /var/www/path/to/awstats chmod a+rw /var/www/path/to/awstats (or perhaps chown user /var/www/path/to/awstats)# Create a bash script to update awstats and generate HTML:
!/bin/bash perl /usr/lib/cgi-bin/awstats.pl -config=mydomain.ext -update -showcorrupted perl /usr/share/awstats/tools/awstats_buildstaticpages.pl -config=mydomain.ext -dir=/var/www/path/to/awstats -awstatsprog=/usr/lib/cgi-bin/awstats.pl -showcorrupted# Set up a crontab job to execute this script
- Configure Apache to serve awstats with appropriate Require: valid-user permissions as necessary.
Apache Log Format
If your Apache log config (in /etc/apache2/apache2.conf) defines a log format like this:LogFormat "%v:%p %h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" vhost_combined
Then you need to modify the awstats.domain.conf LogFormat and HostAliases:
LogFile="/var/log/apache2/other_vhosts_access.log" LogFormat="%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquote %uaquot" HostAliases="localhost 127.0.0.1 jevon.org:80"