I am planning to update this page to contain full installation and configuration of awstats for apache as I have time to. If you want to add something, go ahead. -th0th
mod_perl is required to run awstats with apache. ArchTrack/pkg package is available in repo extra. So you can install it using pacman.
# pacman -S mod_perl
Awstats package is available in AUR. You can use yaourt to build it or you can obtain tarball from AUR and build it yourself.
$ yaourt -S awstats
Enable mod_perl for Apache
To enable mod_perl in apache, you should add following line to apache configuration (/etc/httpd/conf/httpd.conf).
LoadModule perl_module modules/mod_perl.so
Configure Apache to log for Awstats
By default awstats requires Apache to record access logs as 'combined'. Unless you want a different behavior, you should set your access log format as 'combined'. To do so, your apache configuration should look like this:
<VirtualHost *:80> ServerAdmin firstname.lastname@example.org DocumentRoot "/srv/http/xxx" ServerName www.returnfalse.net ErrorLog "/var/log/httpd/returnfalse-error_log" CustomLog "/var/log/httpd/returnfalse-access_log" combined </VirtualHost>
The important line here is:
CustomLog "/var/log/httpd/returnfalse-access_log" combined
Including Awstats Configuration to Apache's Configuration
If you set the log format, then next step is including awstats config file to apache. The package in AUR has a default one, and it's working without any problem. But incase you want to create your own configuration, default one is this:
Alias /awstatsclasses "/srv/http/awstats/classes/" Alias /awstatscss "/srv/http/awstats/css/" Alias /awstatsicons "/srv/http/awstats/icon/" ScriptAlias /awstats/ "/srv/http/awstats/cgi-bin/" <Directory "/srv/http/awstats"> Options None AllowOverride None Order allow,deny Allow from all </Directory>
Include this file (in AUR case, the path is /etc/httpd/conf/extra/httpd-awstats.conf) to apache's main configuration:
Now if you have done all steps correctly, you should be able to see awstats running on http://domaincomeshere.com/awstats/awstats.pl of course after restarting apache. One last thing, which is the actual aim, make awstats read logs and convert them to stats.
Package in AUR comes with a out of the box hourly cron to update stats shown on awstats. This cron script reads awstats configuration files in /etc/awstats and updates the stats for the sites that are defined in these configuration files. Instead of creating these configuration files, you can use awstats' configuration tool. Run:
and follow the instructions. If you are successfully created config file there is one thing that you should modify manually. Open the configuration file created by awstats_configure.pl with your favorite text editor. Then find the line on which LogFile variable is defined, and set it as the path that apache logs accesses (which you set to be logged as 'combined' format before):
LogFile = /var/log/httpd/returnfalse-access_log
You are done, now you can run hourly cron script to test the results.