Awstats sous Apache

De EjnTricks

L'exécution de Awstats produit des fichiers texte dans le répertoire /var/lib/awstats. Or il est plus intéressant d'avoir accès aux statistiques depuis un site Web. L'article suivant présente la mise en place sous Apache


Hand-icon.png Votre avis

Current user rating: 93/100 (3 votes)

 You need to enable JavaScript to vote


link Configuration sur site par défaut

L'application Awstats peut être exposée sous Apache. Lors de l'installation du serveur, un site par défaut est configuré. Il est donc possible d'ajouter les directive suivante, au niveau du fichier /etc/apache2/sites-available/default.

	#Alias /awstatsclasses "/usr/share/awstats/classes/"
	#Alias /awstatscss "/usr/share/awstats/css/"
	Alias /awstats-icon "/usr/share/awstats/icon/"

	ScriptAlias /stats /usr/lib/cgi-bin/awstats.pl

	<Directory /usr/lib/cgi-bin/>
		DirectoryIndex awstats.pl
		UseCanonicalName off

		Options +ExecCGI
		AllowOverride Node
		Order allow,deny
		Allow from all
	</Directory>

Attention, il existe déjà la définition des scriptions dans la configuration du site par défaut sous Ubuntu. La configuration suivante n'est donc pas reproduite:

	<Directory /usr/lib/cgi-bin/>
		DirectoryIndex awstats.pl
		UseCanonicalName off

		Options +ExecCGI
		AllowOverride Node
		Order allow,deny
		Allow from all
	</Directory>

Le fichier de configuration devient donc, pour une version d' Apace 2.2:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
#        Deny from all
#        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

        #Alias /awstatsclasses "/usr/share/awstats/classes/"
        #Alias /awstatscss "/usr/share/awstats/css/"
        Alias /awstats-icon "/usr/share/awstats/icon/"

        ScriptAlias /stats /usr/lib/cgi-bin/awstats.pl

</VirtualHost>

Cette configuration est inspirée de la documentation Ubuntu. Cependant, les répertoires suivants n'existe pas:

  • /usr/share/awstats/classes/
  • /usr/share/awstats/css/

C'est pourquoi la configuration est mise en commentaire.

Les statistiques sont alors disponibles par simple URL. Il ne faut pas oublier le / à la fin de l'URL, ce qui donne pour ce site: http://www.jouvinio.net/stats/, donnant l'affichage suivant:


Lors d'une mise à jour du serveur Ubuntu, Apache a été mis à jour en version 2.4.6. Cependant, l'impact est assez conséquent, car il y a eu une refonte de la gestion des droits d'accès. Le fichier de configuration est le suivant:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                # Old configuration for APACHE 2.2
                # Order allow,deny
                # Allow from all
                Require all granted
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        # Old configuration for APACHE 2.2
        # Order deny,allow
        Require all granted
#        Deny from all
#        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

        #Alias /awstatsclasses "/usr/share/awstats/classes/"
        #Alias /awstatscss "/usr/share/awstats/css/"
        Alias /awstats-icon "/usr/share/awstats/icon/"

        ScriptAlias /stats /usr/lib/cgi-bin/awstats.pl

</VirtualHost>


link Configuration sur site dédié

Le paragraphe précédent a permis d'exposer les statistiques dans le site par défaut. Cependant, les accès à ce site sont alors tracés dans le fichier de log audité. Ce qui fait que les accès aux statistiques sont également audités, ce qui n'est pas forcément souhaité. Ce paragraphe détaille donc la mise en place d'un "Virtual Host" sous Apache dédié pour Awstats.

Dans un premier temps, il faut créer le nouveau "Virtual Host" sous Apache. Dans le cadre de ce site, il va être publié sous www.stats.jouvinio.net. La configuration de ce host est écrite dans le fichier /etc/apache2/sites-available/stats avec le contenu suivant:

<VirtualHost *:80>
        ServerAdmin ejouvin@free.fr
        ServerName www.stats.jouvinio.net
        DocumentRoot /var/www/stats

	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/stats>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

        ErrorLog ${APACHE_LOG_DIR}/error_stats.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access_stats.log combined

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        #Alias /awstatsclasses "/usr/share/awstats/classes/"
        #Alias /awstatscss "/usr/share/awstats/css/"
        Alias /awstats-icon "/usr/share/awstats/icon/"

        ScriptAlias /awstats /usr/lib/cgi-bin/awstats.pl

</VirtualHost>

Dans cette configuration, la racine du site est spécifiée dans le répertoire /var/www/stats, répertoire à créer:

#sudo mkdir /var/www/stats
#sudo chown www-data:www-data /var/www/stats

Une fois tout ceci mis en place, il faut activer le site sous Apache en plaçant un lien dans le répertoire /etc/apache2/sites-enabled. La configuration sera prise en compte après rechargement de la configuration Apache.

#sudo ln -s /etc/apache2/sites-available/stats /etc/apache2/sites-enabled/001-stats
#sudo apache2ctl graceful

Cependant, l'accès à ce nouveau site va produire une erreur:


Lors de cet accès, le fichier de configuration correspondant au domaine est chargé, soit le fichier awstats.www.stats.jouvinio.net.conf. N'étant pas présent, le fichier par défaut awstats.conf est utilisé. Or le paramètre SiteDomain dans celui-ci n'est pas sépcifié. C'est pourquoi une erreur est produite.

Afin d'obtenir les statistiques, il faut rajouter la configuration à utiliser au niveau de l'URL, qui devient donc http://www.stats.jouvinio.net/awstats/?config=www.jouvinio.net.

Lors d'une mise à jour du serveur Ubuntu, Apache a été mis à jour en version 2.4.6. Cependant, l'impact est assez conséquent, car il y a eu une refonte de la gestion des droits d'accès. Le fichier de configuration est le suivant:

<VirtualHost *:80>
        ServerAdmin ejouvin@free.fr
        ServerName www.stats.jouvinio.net
        DocumentRoot /var/www/stats

	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/stats>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
                # Old configuration for APACHE 2.2
                # Order allow,deny
                # Allow from all
                Require all granted
	</Directory>

        ErrorLog ${APACHE_LOG_DIR}/error_stats.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access_stats.log combined

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                # Old configuration for APACHE 2.2
                # Order allow,deny
                # Allow from all
                Require all granted
        </Directory>

        #Alias /awstatsclasses "/usr/share/awstats/classes/"
        #Alias /awstatscss "/usr/share/awstats/css/"
        Alias /awstats-icon "/usr/share/awstats/icon/"

        ScriptAlias /awstats /usr/lib/cgi-bin/awstats.pl

</VirtualHost>


Viewer icon.png Voir aussi

Documentation Ubuntu: http://doc.ubuntu-fr.org/awstats