Awstats installation in Ubuntu

Posted under » Ubuntu » Linux » Perl » SEO updated on 30 March 2012

Awstats is not new and I have been using it since 2000 because google analytics is risky and slow. The last update was probably in 2007. I chose awstats because it is part of Ubuntu's repositories. Refer to the documentation for Awstats.

Tested installation an Ubuntu 10.10 and 12.04.

How does it work?

It works in Perl. So you have to make it work with Apache. Subject to your version, the location of the files are

The idea is that with one installation of Awstats, you can check the hits of a particular domain by specifying in the parameter like

http://awestats.com/awstats/awstats.pl?config=anoneh.com

Since they will be looking at raw apache log files, it must be processed first. This processing is done by command line by specifying the config files.

/usr/lib/cgi-bin/awstats.pl -config=anoneh.com -update

The config file determine things like

Once processing is done you can then view the stats from your browser.

Common errors

Error: SiteDomain parameter not defined in your config/domain file. 
You must edit it for using this version of AWStats.
Setup ('/etc/awstats/awstats.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).

Actual Reason : Log files are not readable because log files are copied or moved. Therefore you must CMOD it to 0755.

Installing Awstats is simple

aptitude install awstats
or 
apt-get install awstats

Install the plugin dependencies

aptitude install libnet-ip-perl
aptitude install libgeo-ipfree-perl

Making it work with Apache

Since awstats is in perl, then you have to configure the cgi location

<VirtualHost *:80>  
  ServerName awestats.com
  ServerAdmin webmaster@awestats.com

Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

  ErrorLog /var/log/apache2/error-awestats.log
  LogLevel warn
  CustomLog /var/log/apache2/access-awestats.log combined
</VirtualHost>

Configuring Awstats

First make a copy

cp /etc/awstats/awstats.conf /etc/awstats/awstats.anoneh.com.conf

Then gedit awstats.anoneh.com.conf

Missing Images

This is because there are 2 configs. One for apache using alias and one for awstats eg. awstats.anoneh.com.conf. It could be "awstats-icon" like above or default "icons" so make sure both are pointing to the same folder.

Now process the logs

You can if you must, combine multiple log files into one by logresolvemerge.pl tool. Don't attempt to "cat" the log files, it won't work.

/usr/share/doc/awstats/examples/logresolvemerge.pl /var/log/apache2/access-anoneh.log.* > combined-anoneh.log

Once the config is done, process the config file by

/usr/lib/cgi-bin/awstats.pl -config=anoneh.com -update

You can also use cron

# update every 10 min
*/10 * * * * root /usr/lib/cgi-bin/awstats.pl -config=anoneh.com -update > /dev/null

Take note it will take a while. Then view your statistics with the processed data using browser

http://awestats.com/awstats/awstats.pl?config=anoneh.com

How to reset awstats

Delete the processed log files in /var/lib/awtstats (directory defined by DirData parameter) using RM although you have to be root.

If awstats doesn't impress you, then you should try something more current. Introducing PIWIK.

web security linux ubuntu GIT svn Raspberry apache mysql php drupal cake symfony javascript Ajax css