How To: Setting up awstats with apache 2 on debian-ubuntu — page 2

1 minute read

3. Configuring Awstats

Awstats configuration file are located in /etc/awstats. By default, when calling the URL http://www.mysite.org/awstats/awstats.pl, awstats is looking for the configuration file name after your domain name, namely here /etc/awstats/awstats.www.mysite.org.conf. You can override this by giving awstats an argument named config. For instance http://www.mysite.org/awstats/awstats.pl?config=foobar will indicate awstats to fetch the configuration from /etc/awstats/awstats.foobar.conf.

Let’s get back to it. On install, awstats provides a default configuration file named /etc/awstats/awstats.conf. Copy this file to /etc/awstats/awstats.www.mysite.org.conf:

sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.www.mysite.org.conf

and edit the file:

sudo vi /etc/awstats/awstats.www.mysite.org.conf

and check for the following lines and edit those for your needs:

LogFile="/var/log/apache2/access.log"
SiteDomain="mysite.org"

This is all setted up, now you need to generate the first stats.

4. Generating the First Stats

in order to generate the first stats, you need to call the script as root using the following command line:

sudo -u www-data /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=www.mysite.org

Once this is all processed, check out your stats from http://www.mysite.org/awstats/awstats.pl :D.

5. Automatising the stats generation using Cron:

If we check the file installed by awstats and search for the word cron using the following command line:

dpkg -L awstats | grep cron
/etc/cron.d
/etc/cron.d/awstats

we can see that awstats already installed a cron job which contain:

0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null

which basically check every 10 minutes that file /usr/lib/cgi-bin/awstats.pl is executable AND file /etc/awstats/awstats.conf exists and is a regular file AND file /var/log/apache/access.log is readable, if this is TRUE, it executes awstats.pl with the config awstats.

As the file /etc/awstats/awstats.awstats.conf does not exist, it will take /etc/awstats/awstats.conf by default.

What we can do in the first, is to use that file for our needs. Let say I want update my stats every day at 2am, I will change the line to:

0 2 * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=mysite.com -update >/dev/null

Hope this helped :wink: