Awstats est un ensemble de script perl alors on commence par vérifier que notre apache possède le mod_perl.

# httpd -t -D DUMP_MODULES

Dans mon cas, je n'ai pas le module, on va commencer par l'installer, ici dans mon cas c'est un httpd 2.2.6 avec perl, libperl en version 5.8.8

# cd ~/work/
# wget http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz
# tar xvzf mod_perl-2.0-current.tar.gz
# cd mod_perl-2.0.3/
# perl Makefile.PL MP_APXS=/applis/httpd/bin/apxs \
> MP_APR_CONFIG=/applis/httpd/bin/apr-1-config

Si vous rencontrez des erreurs pendant la construction, vérifiez qu'il ne vous manque pas de dépendances, pour moi il manquait la libperl-dev. Si vous obtenez l'erreur suivante :

"undefined symbol: strlcpy"

Utiliser CPAN pour installer le module Cwd :

# cpan
cpan> install Cwd

On installe :

# make
# make test
# make install

Une fois construit, ajouter dans votre htpd.conf et relancer apache :

LoadModule perl_module          modules/mod_perl.so

Partie awstats

On installe et on réarrange tout ca :

# cd /applis/
# wget http://kent.dl.sourceforge.net/sourceforge/awstats/awstats-6.7.tar.gz
# tar xvzf awstats-6.7.tar.gz
# ln -sf awstats-6.7 awstats
# cd awstats
# rm -rf docs README.TXT
# mv wwwroot html
# mv html/cgi-bin .
# rm -rf cgi-bin/plugins/example
# mkdir -p lib/awstat
# mkdir etc

Ce qui doit donner une arborescence comme celle là :

# tree -d
.
|-- cgi-bin
|   |-- lang
|   |   |-- tooltips_f
|   |   |-- tooltips_m
|   |   `-- tooltips_w
|   |-- lib
|   `-- plugins
|-- etc
|-- html
|   |-- classes
|   |   `-- src
|   |-- css
|   |-- icon
|   |   |-- browser
|   |   |-- clock
|   |   |-- cpu
|   |   |-- flags
|   |   |-- mime
|   |   |-- os
|   |   `-- other
|   `-- js
|-- lib
|   `-- awstats
`-- tools
    |-- webmin
    `-- xslt

On va construire le fichier de configuration pour le site, pour cela awstats possède un fichier de configuration type, on va se baser dessus pour faire le notre :

# sed -e '/^#.*/d; /^$/d' < cgi-bin/awstats.model.conf > etc/awstats.www.toto.com.conf

Ce qui nous donne un fichier épuré des commentaires et lignes vides. Dans le fichier de configuration, seules quelques lignes sont à renseigner pour obtenir une conf. fonctionnelle.

LogFile="/var/logs/httpd/toto.com.log"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="toto.com"
HostAliases="www.toto.com"
DNSLookup=2
DirData="/applis/awstats/lib/awstats"
DirCgi="/cgi-bin"
DirIcons="/icon"
[...]

On modifie les droits :

# chown -R httpd: {html,cgi-bin,lib}

Par contre nous allons devoir modifier la fichier awtstats.pl manuellement car notre chemin d'accès est différent de ce qu'attend awstats par défaut.

# vi cgi-bin/awstats.pl

Chercher la ligne (1156) et placer le répertoire qui contiendra vos fichiers de conf awstats pour chaque domaine :

else { @PossibleConfigDir=("/applis/awstats/etc/"); }

Niveau configuration apache

Configuration du vhost :

<VirtualHost *:7000>
        ServerName awstats.toto.com
        DocumentRoot /applis/awstats/html
        DirectoryIndex awstats.pl
        CustomLog /var/logs/httpd/awstats.toto.com.log combined
        ErrorLog /var/logs/httpd/err_awstats.toto.com.log

        Alias /awstatsclasses "/applis/awstats/html/classes/"
        Alias /awstatscss "/applis/awstats/html/css/"
        Alias /awstatsicons "/applis/awstats/html/icon/"
        ScriptAlias /awstats/ "/applis/awstats/cgi-bin/"

        <Location /awstats/>
                SetHandler perl-script
                PerlResponseHandler ModPerl::Registry
                PerlOptions +ParseHeaders
                Options +ExecCGI
                Order allow,deny 
                Allow from all
        </Location>

        <Directory "/applis/awstats/html">
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

Pour lancer la génération des stats :

# perl cgi-bin/awstats.pl -config=awstats.toto.com.conf update

A vous de rajouter cela dans vos crontabs et autres ...

Pour accéder à l'url de vos statistiques (supposant que le domaine de votre vhost soit awstats.toto.com) :

http://awstats.toto.com:7000/awstats/awstats.pl?config=www.toto.com

Perso, je déconseillerais de le laisser tel quel sur le net, un .htaccess pour protéger l'accès est indispensable.