Who's Online

5 visitors online now
3 guests, 2 bots
Powered by Visitor Maps

We Recommend:

Debian GNU/Linux

CENTOS Linux
The next version of Ubuntu is coming soon

awstats howto

This HowTo discusses the procedure to setup awstats on your server.

All steps as root, unless mentioned otherwise.

First of all, configure your Apache server to use “combined”, instead of “common” as log format, in /etc/httpd/conf/httpd.conf .

In Section 1:

CustomLog logs/access_log combined

In each virtual host:-

ErrorLog /var/www/vhosts/example.com/statistics/logs/error_log

CustomLog /var/www/vhosts/example.com/statistics/logs/access_log common

Download awstats in /root/ from: http://awstats.sourceforge.net/

mkdir /usr/local/awstats

Put all files from the package over there.

cd /usr/local/awstats

tar xzf /root/awstats-6.9.tar.gz

Make configuration directory for awstats.

mkdir /etc/awstats

In case you have old configuration files, just copy them over as :-

cp /data/backup/etc/awstats/awstats.* /etc/awstats/

Or, create new ones as following. Remember to use the naming scheme as “awstats.sitename.conf”:-

The important lines are highlighted.

[root@www root]# vi /etc/awstats/awstats.www.example.com.conf

LogFile=”/var/www/vhosts/example.com/statistics/logs/access_log”

LogType=W

LogFormat=4

LogSeparator=” ”

SiteDomain=”www.example.com”

HostAliases=”example.com www.example.com 127.0.0.1 localhost”

DNSLookup=1

DirData=”/var/lib/awstats”

DirCgi=”/cgi-bin”

DirIcons=”/icon”

AllowToUpdateStatsFromBrowser=0

AllowFullYearView=2

EnableLockForUpdate=0

DNSStaticCacheFile=”dnscache.txt”

DNSLastUpdateCacheFile=”dnscachelastupdate.txt”

SkipDNSLookupFor=”"

AllowAccessFromWebToAuthenticatedUsersOnly=0

AllowAccessFromWebToFollowingAuthenticatedUsers=”"

AllowAccessFromWebToFollowingIPAddresses=”"

CreateDirDataIfNotExists=0

BuildHistoryFormat=text

BuildReportFormat=html

SaveDatabaseFilesWithPermissionsForEveryone=0

PurgeLogFile=0

ArchiveLogRecords=0

KeepBackupOfHistoricFiles=0

DefaultFile=”index.html”

SkipHosts=”"

SkipUserAgents=”"

SkipFiles=”"

SkipReferrersBlackList=”"

OnlyHosts=”"

OnlyUserAgents=”"

OnlyFiles=”"

NotPageList=”css js class gif jpg jpeg png bmp ico swf”

ValidHTTPCodes=”200 304″

ValidSMTPCodes=”1 250″

AuthenticatedUsersNotCaseSensitive=0

URLNotCaseSensitive=0

URLWithAnchor=0

URLQuerySeparators=”?;”

URLWithQuery=0

URLWithQueryWithOnlyFollowingParameters=”"

URLWithQueryWithoutFollowingParameters=”"

URLReferrerWithQuery=0

WarningMessages=1

ErrorMessages=”"

DebugMessages=0

NbOfLinesForCorruptedLog=50

WrapperScript=”"

DecodeUA=0

MiscTrackerUrl=”/js/awstats_misc_tracker.js”

UseFramesWhenCGI=1

DetailedReportsOnNewWindows=1

Check the directory:-

[root@www awstats-6.9]# ls /etc/awstats/ -l

-rw-r–r– 1 root root 59622 Jul 29 12:21 awstats.www.example.com.conf

[root@www awstats-6.9]#

The Data directory is /var/lib/awstats

mkdir /var/lib/awstats

Optional : If you have old data, you can copy it to the /var/lib/awstats at this point.

cp /data/backup/var/lib/awstats/* /var/lib/awstats/

Add the highlighted code to your apache virtual hosts configuration:

<VirtualHost *:80>

ServerName www.example.com

ServerAlias example.com

DocumentRoot /var/www/html/default

<Directory /var/www/html/default>

Order Allow,Deny

AllowOverride none

Allow from all

Options None

</Directory>

ErrorLog /var/www/vhosts/example.com/statistics/logs/error_log

CustomLog /var/www/vhosts/example.com/statistics/logs/access_log common

Alias /awstatsclasses “/usr/local/awstats/wwwroot/classes/”

Alias /awstatscss “/usr/local/awstats/wwwroot/css/”

Alias /awstatsicons “/usr/local/awstats/wwwroot/icon/”

ScriptAlias /awstats/ “/usr/local/awstats/wwwroot/cgi-bin/”

#

# This is to permit URL access to scripts/files in AWStats directory.

#

<Directory “/usr/local/awstats/wwwroot”>

Options None

AllowOverride None

Order allow,deny

Allow from all

</Directory>

</VirtualHost>

Create records from the log file for the first time. (This is a very slow process. 4500 lines per second + DNS overhead, on a 1 GHz system). Will take an hour sometimes:-

[root@www root]# perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=www.example.com -update

Create/Update database for config “/etc/awstats/awstats.www.example.com.conf” by AWStats version 6.9 (build 1.925)

From data in log file “/var/www/vhosts/example.com/statistics/logs/access_log”…

Phase 1 : First bypass old records, searching new record…

Direct access to last remembered record has fallen on another record.

So searching new records from beginning of log file…

Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…

Jumped lines in file: 0

Parsed lines in file: 4460803

Found 10 dropped records,

Found 399 corrupted records,

Found 4096243 old records,

Found 364151 new qualified records.

[root@www root]#

Put the following in crontab to run everymorniing at 4 AM. Use multiple entries for each site you are monitoring with awstats.

crontab -e

0 4 * * * /usr/bin/perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=www.example.com -update

That is it.

Access your stats page using :

http://www.example.com/awstats/awstats.pl

Making your stats in-accessible to public:-

Create a .htaccess file in the wwwroot/cgi-bin directory:

vi .htaccess

AuthName “Authorization Required”
AuthType Basic
AuthUserFile /var/www/vhosts/.htpasswd
Require valid-user

Create users such as:-

[root@www cgi-bin]# htpasswd -c /var/www/vhosts/.htpasswd example.com
New password:
Re-type new password:

Change ownership of the .htaccess and .htpasswd files to make them readable by apache:

chown apache:apache .htaccess /var/www/vhosts/.htpasswd

For this to work, you will need to update the corresponding AllowOverride directive in your apache config file,

From:

AllowOverride None

To :

AllowOverride AuthConfig
Or:

AllowOverride All

Then restart or reload Apache service:

service httpd reload

That should be all.

Hits:3337

Leave a Reply

  

  

  

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>