Configurer awstats pour utilisation avec tous les vhost d’un serveur apache

Configuration : les paramétrages pour utiliser awstats avec tous les virtuals hosts d’un serveur apache sur une machine sous Linux Debian 8 (Jessie).

, par clem

Sur une installation "standard" d’awstats (version 7.1) réalisée selon l’indispensable tutoriel proposé par http://technique.arscenic.org/monitoring/awstats/article/installation-et-configuration-de, on souhaite que tous les virtuals hosts aient accès à leurs statistiques awstats avec une url de la forme : http://mon-domaine.tld/awstats/

Configuration générale : fichier /etc/apache2/apache2.conf

Le ScriptAlias et la directive Directory pour envoyer l’URL /awstats/ du vhost vers le script awstats.pl et protéger son accès par mot de passe

ScriptAliasMatch ^/awstats(.*) /usr/lib/cgi-bin/awstats.pl

<Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Order allow,deny
        Allow from all

        AuthUserFile /etc/awstats/users.pwd
        AuthName "Acces reserve"
        AuthType Basic
        Require valid-user
</Directory>

L’alias et la directive "Directory" pour que les images soient servies par le bon répertoire

Alias /icon/ /usr/share/awstats/icon/
<Directory /usr/share/awstats/icon>
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

Configuration d’un vhost : le fichier /etc/awstats/mon-domaine.tld.conf minimum

On suppose que :

  • ce vhost mon-domaine.tld a la configuration suivante dans son fichier vhost :
    DocumentRoot /chemin/repertoire/vhosts/mon-domaine.tld/html
    CustomLog /chemin/repertoire/vhosts/mon-domaine.tld/logs/access.log combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
  • qu’il existe un dossier /chemin/repertoire/vhosts/mon-domaine.tld/awstats qui stockera les fichiers générés par awstats.

Dans ces conditions le fichier /etc/awstats/mon-domaine.tld.conf aura comme configuration minimum :

# AWSTATS CONFIGURE FILE 7.1

LogFile="/chemin/repertoire/vhosts/mon-domaine.tld/logs/access.log"
SiteDomain="mon-domaine.tld"
HostAliases="www.mon-domaine.tld"
DirData="/chemin/repertoire/vhosts/mon-domaine.tld/awstats"

La création d’un accès pour un utilisateur se fera par ajout d’un compte dans /etc/awstats/users.pwd avec la commande htpasswd, par ex pour un utilisateur toto avec le mot de passe LeSecret :

htpasswd -b /etc/awstats/users.pwd toto LeSecret