How to Configure Awstats

AWStats (Advanced Web Statistics) is a free web analytics reporting tool. It generates advanced web, streaming, FTP, or mail server statistics. AWStats analyzes server log files and produces HTML reports in a nice graphical display.

The AWStats is the most widely used log analyzer program with Apache Web Servers on Respective Enterprise Linux. 
This tutorial shows how to install and configure AWStats for Apache. You need to follow all the steps carefully to setup the AWStats for Apache.

NOTE: The mentioned steps are performed on CentOS 7 server.

STEP 1. Install AWSstats.

sudo yum install awstats

STEP 2. Configure AWStats for Apache

AWStats creates an Apache configuration file /etc/httpd/conf.d/awstats.conf by default. If you want to access AWStats from all networks, then you will need to update the settings as follows.

<Directory "/usr/share/awstats/wwwroot">
    Options None
    AllowOverride None
    <IfModule mod_authz_core.c>
        # Apache 2.4	
	Require all granted
    <IfModule !mod_authz_core.c>
        # Apache 2.2
#        Order allow,deny
#        Allow from
#        Allow from ::1
	 Require all granted    

Restart the Apache service to reload new settings

sudo systemctl restart httpd

Here, we will create a configuration file for the domain.

NOTE: You need to create a separate configuration file for each website for which you wish to view statistics.

First, create a copy of the default AWStats configuration file with your domain name:

sudo cp /etc/awstats/awstats.localhost.localdomain.conf etc/awstats/

Next, make the following changes in the config file

sudo vim /etc/awstats/

Update the following lines:

# Change to Apache log file, by default it's /var/log/apache2/access.log

# Change to the website domain name
HostAliases=" localhost"

Save and close the file. Restart the Apache service to reload the new settings:

sudo systemctl restart httpd 

After doing the above changes, you need to build your initial statistics, which will be generated from the current logs on your server.

You can use this command for it:

sudo /usr/share/awstats/wwwroot/cgi-bin/ -update

The output will look something like this:

From data in log file "/var/log/httpd/access_log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line 209)
Jumped lines in file: 209
Found 209 already parsed records.
Parsed lines in file: 0
Found 0 dropped records,
Found 0 comments,
Found 0 blank records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.</code></pre>

STEP 3. Access AWStats in a browser

Now you can access your AWStats by visiting the URL:
(Change the domain name at the end of the URL to match your own.)


NOTE: As AWStats is allowed to access from all networks, it is advised to add HTTP Authentication on AWStats.

To add HTTP Authentication to AWStats, follow the below steps :

1. This command creates a new password file and sets the password for the “admin” user:

sudo htpasswd -c /etc/apache2/.htpasswd admin

2. Enable HTTP authentication in AWS

Edit /etc/httpd/conf.d/awstats.conf and add the following in the file.

<Location /awstats>
 AuthType Basic
 AuthName "AWStats Admin Access Required"
 AuthUserFile "/etc/httpd/.htpasswd" 
 require valid-user

Save and exit the file & restart apache service

sudo systemctl restart

Now, It will prompt for username & password when you will try to access AWStats in a browser.

Leave a Reply

Your email address will not be published. Required fields are marked *