29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
29-01-2012 : Parce que nous sommes un peuple debout, agissons pour rester dignes et responsables !
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / Internet / AWStats / AWStats : installer





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox

AWStats : installer

Date de publication: le samedi 19 mai 2007 à 01h49
Dernière modification: par Pascal BOYER le jeudi 12 mars 2009 à 21h07
» Article suivant: AWStats : messages d'erreur

Installation de AWStats 6.7

Les bases nécessaires

Voici ce qui est installé sur ma machine:

dpkg -l |grep apache

ii  apache                            1.3.34-4.1                      versatile, high-performance HTTP server
ii  apache-common                     1.3.34-4.1                      support files for all Apache webservers
ii  apache2-utils                     2.2.3-4                         utility programs for webservers
ii  libapache-mod-php4                4.4.4-8+etch1                   server-side, HTML-embedded scripting languag

dpkg -l |grep php

ii  libapache-mod-php4                4.4.4-8+etch1                   server-side, HTML-embedded scripting languag
ii  php-auth                          1.2.4-0.1                       PHP PEAR modules for creating an authenticat
ii  php-db                            1.7.6-2                         PHP PEAR Database Abstraction Layer
ii  php-http                          1.3.6-2                         PHP PEAR module for HTTP related stuff
ii  php-mail                          1.1.6-2                         PHP PEAR module for sending email
ii  php-net-smtp                      1.2.6-2                         PHP PEAR module implementing SMTP protocol
ii  php-net-socket                    1.0.6-2                         PHP PEAR Network Socket Interface module
ii  php-pear                          5.2.0-8+etch1                   PEAR - PHP Extension and Application Reposit
ii  php-xml-parser                    1.2.6-2                         PHP PEAR module for parsing XML
ii  php4                              4.4.4-8+etch1                   server-side, HTML-embedded scripting languag
ii  php4-cli                          4.4.4-8+etch1                   command-line interpreter for the php4 script
ii  php4-common                       4.4.4-8+etch1                   Common files for packages built from the php
ii  php4-gd                           4.4.4-8+etch1                   GD module for php4
ii  php4-imagick                      0.9.11+1-4.1                    ImageMagick module for php4
ii  php4-imap                         4.4.4-8+etch1                   IMAP module for php4
ii  php4-mcal                         4.4.4-8+etch1                   MCAL calendar module for php4
ii  php4-mcrypt                       4.4.4-8+etch1                   MCrypt module for php4
ii  php4-mhash                        4.4.4-8+etch1                   MHASH module for php4
ii  php4-mysql                        4.4.4-8+etch1                   MySQL module for php4
ii  php4-pear                         4.4.4-8+etch1                   PHP Extension and Application Repository (tr
ii  php4-xslt                         4.4.4-8+etch1                   XSLT module for php4
ii  php5-common                       5.2.0-8+etch1                   Common files for packages built from the php

dpkg -l |grep perl

ii  libapt-pkg-perl                   0.1.20                          Perl interface to libapt-pkg
ii  libconfig-file-perl               1.4-2                           Parses simple configuration files
ii  libdbd-mysql-perl                 3.0008-1                        A Perl5 database interface to the MySQL data
ii  libdbi-perl                       1.53-1                          Perl5 database interface by Tim Bunce
ii  liblocale-gettext-perl            1.05-1                          Using libc functions for internationalizatio
ii  libnet-daemon-perl                0.38-1.1                        Perl module for building portable Perl daemo
ii  libperl5.8                        5.8.8-7                         Shared Perl library
ii  libplrpc-perl                     0.2017-1.1                      Perl extensions for writing PlRPC servers an
ii  libtext-charwidth-perl            0.04-4                          get display widths of characters on the term
ii  libtext-iconv-perl                1.4-3                           converts between character sets in Perl
ii  libtext-wrapi18n-perl             0.06-5                          internationalized substitute of Text::Wrap
ii  perl                              5.8.8-7                         Larry Wall's Practical Extraction and Report
ii  perl-base                         5.8.8-7                         The Pathologically Eclectic Rubbish Lister
ii  perl-modules                      5.8.8-7                         Core Perl modules
ii  perl-suid                         5.8.8-7                         Runs setuid Perl scripts

:
Dans la suite de l'article on supposera que le répertoire racine du serveur Apache est /usr/local/www/ (ce qui correspond à la valeur de la directive DocumentRoot du fichier de configuration d’Apache).

Télécharger Awstats

Vous pouvez télécharger le tarball de la dernière version stable ici .

Une fois téléchargée, placer cette archive (awstats-6.7.tar.gz) à la racine de /usr/local/ puis la désarchiver:

cd /usr/local

tar xfv awstats-6.7.tar.gz

Un nouveau répertoire awstats-6.7 est alors créé.

Pour plus de sécurité, on peut supprimer tous les droits du groupe Other sur tous les répertoires et fichiers nouvellement installés:

chmod -R o-rwx awstats-6.7/

Puis on donne les droits d'accès au serveur web:

chown -R root:www-data awstats-6.7

Avant de lancer la configuration de AWStats, préparons le terrain en créant en tant que root le répertoire suivant:

cd /etc

mkdir awstats

Ce répertoire contiendra les fichiers de configuration de AWStats qui seront de la forme awstats. nom_de_domaine_du_site.conf

:
Il faut créer un fichier pour chaque nom de domaine abritant un site web.

Puis, toujours en tant que root, créer celui-ci:

cd /var/lib

mkdir awstats

chown www-data:www-data awstats

www-data est la valeur des directives User et Group du fichier de configuration apache2.conf d’Apache2. Il est nécessaire qu’Apache puisse écrire dans ce répertoire.

On verra bientôt que /var/lib/awstats est la valeur de la directive DirData du fichier /etc/awstats/ awstats. nom_de_domaine_du_site.conf

/var/lib/awstats/ est le répertoire dans lequel AWStats écrit ses mises à jour de données.

Les fichiers de log

Si vous souhaitez obtenir des statistiques sur les systèmes d'exploitations, les navigateurs et les mots clef alors vous devez utilisez le format combined (ou NCSA, ou XLF ou ELF) pour les fichiers de log du serveur Apache. Dans le fichier de configuration d’Apache, vous devez trouver une ligne:

CustomLog /var/log/apache2/access.log combined

( combined doit terminer la ligne impérativement) se rapportant à une ligne ressemblant à ceci:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

ou à cela:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{forensic-id}n\"" combined

où:

  • %h est le nom de la machine cliente ou son @IP,
  • %l est le nom du user sur la machine cliente (combiné à IdentityChek On),
  • %u est le nom d’utilisateur avec lequel le client s’est authentifié (si besoin de passwd pour accéder à une page HTML ou autre),
  • %t est l’heure de réception de la requête du client,
  • \"%r\" est la ligne de requête HTTP à proprement parler,
  • %>s est le statut final du traitement de la requête,
  • %b est le nombre d’octets renvoyés dans la réponse du serveur,
  • \"% Refereri\" est l’URL de la page qui qui amené le client sur notre site,
  • \"% User-Agenti\" est le nom et version du navigateur du client,

:
Il est important, au départ et pour tester le bon fonctionnement de AWStats, de conserver la directive Logformat proposée par défaut par Apache.

Si vous ne modifiez pas le format des log dans le fichier httpd.conf, le script awstats_configure.pl (voir ci-dessous) vous proposera de le faire lui-même à l'étape 3 (voir ci-dessous). Voici le message affiché par le script dans un tel cas:

-----> Check and complete web server config file '/etc/apache/httpd.conf'
Warning: You Apache config file contains directives to write 'common' log files
This means that some features can't work (os, browsers and keywords detection).
Do you want me to setup Apache to write 'combined' log files [y/N] ? y

Configurer Awstats

Pour lancer la configuration de AWStats, il faut se rendre dans le répertoire /usr/local/awstats-6.7/ tools

cd /usr/local/awstats-6.7/tools

...et lancer la commande ci-après:

:
L’exécution de ce script Perl affiche un certain nombre d’informations sur ce qu’il fait et vous pose quelques simples questions que je prends la peine de détailler pour ceux qui ne comprennent vraiment rien à l’anglais ;-)

Etape 1

perl awstats_configure.pl

----- AWStats awstats_configure 1.0 (build 1.7) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).
 
-----> Running OS detected: Linux, BSD or Unix
Warning: AWStats standard directory on Linux OS is '/usr/local/awstats'.
If you want to use standard directory, you should first move all content
of AWStats distribution from current directory:
/usr/local/awstats-6.7
to standard directory:
/usr/local/awstats
And then, run configure.pl from this location.
Do you want to continue setup from this NON standard directory [yN] ? y

En clair, le script nous dit que le répertoire standard est /usr/local/awstats alors que dans notre cas il a détecté /usr/local/awstats-6.7. Il nous demande donc de confirmer l’utilisation de /usr/local/awstats-6.7. J’ai répondu oui (y).

:
Pour une raison inconnue, il se peut que le script reste bloqué après avoir répondu à la première question. Il suffit de l'interrompre avec Ctrl+c puis de le relancer et de répondre à nouveau à la première question.

Etape 2

-----> Check for web server install
 
Enter full config file path of your Web server.
Example: /etc/httpd/httpd.conf
Example: /usr/local/apache2/conf/httpd.conf
Example: c:\Program files\apache group\apache\conf\httpd.conf
Config file path ('none' to skip web server setup):
> /etc/apache/httpd.conf

Ci-dessus, il faut renseigner le chemin complet d’accès au fichier de configuration du serveur web Apache.

Etape 3

-----> Check and complete web server config file '/etc/apache/httpd.conf'
 
-----> Update model config file '/usr/local/awstats-6.7/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.
 
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? y

Le script nous indique à présent qu’il a ajouté quelques lignes [ 1 ] au fichier de configuration d’Apache2, mis à jour le fichier awstats.model.conf et nous demande s’il doit créer un nouveau fichier de configuration. Comme c’est une première installation, il faut répondre oui (y).

:
Pour une raison que j'ignore, le script, contrairement à ce qu'indique la sortie ci-dessus, n'écrit rien du tout dans le fichier de configuration httpd.conf (et cela n'a rien à voir avec des problèmes de droits). Voici ce que devrait normalement ajouté le script perl à la fin de httpd.conf (et qu'il faut éventuellement ajouter à la main):

#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "/usr/local/awstats-6.7/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats-6.7/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats-6.7/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats-6.7/wwwroot/cgi-bin/"
 
#
# This is to permit URL access to scripts/files in AWStats directory.
#
<Directory "/usr/local/awstats-6.7/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

A présent, la sortie qui devrait s'afficher si le script écrivait vraiment dans le fichier httpd.conf:

-----> Check and complete web server config file '/etc/apache/httpd.conf'
 
  Add 'Alias /awstatsclasses "/usr/local/awstats-6.7/wwwroot/classes/"'
  Add 'Alias /awstatscss "/usr/local/awstats-6.7/wwwroot/css/"'
  Add 'Alias /awstatsicons "/usr/local/awstats-6.7/wwwroot/icon/"'
  Add 'ScriptAlias /awstats/ "/usr/local/awstats-6.7/wwwroot/cgi-bin/"'
  Add '<Directory>' directive
  AWStats directives added to Apache config file.
 
-----> Update model config file '/usr/local/awstats-6.7/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.
 
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ?

Etape 4

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
> www.luxpopuli.fr

Ci-dessus, il faut répondre par le nom de domaine du site web pour lequel AWStats devra construire des statistiques.

Etape 5

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):
> 

Taper Enter puisque nous avons préalablement pris soin de créer le répertoire /etc/ awstats

Etape 6

-----> Create config file '/etc/awstats/awstats.www.luxpopuli.fr.conf'
 Config file /etc/awstats/awstats.www.luxpopuli.fr.conf created.
 
-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats-6.7/wwwroot/cgi-bin/awstats.pl -update -config=www.luxpopuli.fr
Or if you have several config files and prefer having only one command:
/usr/local/awstats-6.7/tools/awstats_updateall.pl now
Press ENTER to continue...

Comme indiqué, on poursuit en tapant sur la touche Enter de notre clavier.

Un fichier de configuration /etc/awstats/ awstats.www.mondomaine.fr.conf vient d’être créé.
Le script nous informe également que l’on peut créer manuellement (puisque cela n'est pas encore fait automatiquement) une entrée cron pour une mise à jour automatique des statistiques.

Etape 7

A SIMPLE config file has been created: /etc/awstats/awstats.www.luxpopuli.fr.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'www.luxpopuli.fr' with command:
> perl awstats.pl -update -config=www.luxpopuli.fr
You can also read your statistics for 'www.luxpopuli.fr' with URL:
> http://localhost/awstats/awstats.pl?config=www.luxpopuli.fr
 
Press ENTER to finish...

On termine l'installation en tapant sur la touche Enter de notre clavier.

Ce dernier message indique les deux façons de mettre à jour les statistiques:

  • en ligne de commande
  • à partir d'un URI.

Nous verrons tout cela par la suite.

Derniers réglages

Avant de visualiser les premières statistiques, voici encore quelques modifications à apporter.

Droits du répertoire /usr/local/awstats-6.7

Je rappelle que les scripts CGI ou Perl sont exécutés par le système d’exploitation et non par Apache. Si les droits d’accès ne sont pas corrects, vous obtiendrez des messages d’erreur du type:

  • Bash: ./awstats.pl: Permission non accordée
    avec la commande:

/usr/local/www/awstats-6.7/wwwroot/cgi-bin/awstats.pl -config=linuxorable.net -update

  • You don’t have permission to access /awstats/awstats.pl on this server.
    avec l'URI:

http://www.linuxorable.net/awstats/awstats.pl?config=luxpopuli.fr

Edition du fichier awstats.www.luxpopuli.fr.conf

Le fichier /etc/awstats/ awstats.www.luxpopuli.fr.conf étant le fichier de configuration de AWStats (je rappelle qu’il faut en créer autant qu’il y a de domaines dont on souhaite les statistiques) il faut le configurer en fonction de ses besoins.
Voici quelques points à contrôler:

  • LogFile="/var/log/apache/access.log.1"
    Contrôler le nom du fichier de log qui doit être identique à celui de la directive CustomLog du fichier httpd.conf
  • LogType=W détermine le type de serveur auquel appartient le fichier de log ( w pour Webserver)
  • SiteDomain="www.luxpopuli.fr"
    doit mentionner correctement le nom de domaine de votre site (champ renseigné lors de l'exécution du script awstats_configure.pl).
  • HostAliases="luxpopuli.fr www.luxpopuli.fr 127.0.0.1 localhost"
    doit mentionner correctement les différents noms d’accès au serveur Web (champ renseigné lors de l'exécution du script awstats_configure.pl).
  • DNSLookup=1 (vaut 2 par défaut).
  • DirData="/var/lib/awstats"
    renseigne le nom du répertoire où AWStats écrira ses données. Apache doit pouvoir écrire dans ce répertoire si l’on accepte (voir plus bas) de pouvoir mettre à jour les données via l’interface web. Dans ce cas, on lance les deux commandes suivantes:

chown root:www-data /var/lib/awstats

chmod 770 /var/lib/awstats

  • AllowToUpdateStatsFromBrowser=1
    permet d’afficher un lien Mise à jour immédiate sur la page web d’accueil de AWStats.
  • SkipHosts="93.35.10.192 93.35.10.193"
    permet de définir les adresses IP qui ne doivent pas être prises en compte dans les statistiques.
  • Lang="auto"
    permet de définir comment s’opère le choix de la langue de la page de présentation des statistiques.

Enfin, à propos des fichiers de log, si vous aviez personnalisé la valeur de la directive LogFormat et/ou CustomLog d’ apache2.conf vous devez effacer ou sauvegarder vos fichiers de log actuel d’Apache2 puis redémarrer Apache.

Utiliser Awstats

Pour le premier lancement d’AWStats, il est vraiment préférable d’utiliser la ligne de commande, car procéder ainsi est moins long que de passer par l'interface web et permet de mieux résoudre d'éventuels problèmes.

cd /usr/local/awstats-6.7/wwwroot/cgi-bin/

Puis on crée une base de données qui sera placée dans le répertoire défini par la directive DirData du fichier de configuration /etc/awstats/awstats.www.luxpopuli.fr.conf

:
La valeur du paramètre -config ci-dessous doit être celle renseignée à l'étape 4, sinon c'est le message d'erreur garanti !

./awstats.pl -config=www.luxpopuli.fr -update

Create/Update database for config "/etc/awstats/awstats.www.luxpopuli.fr.conf" by AWStats version 6.7 (build 1.892)
From data in log file "/var/log/apache/access.log"...
Phase 1 : First bypass old records, searching new record...
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: 114298
 Found 8019 dropped records,
 Found 18 corrupted records,
 Found 0 old records,
 Found 106261 new qualified records.

Cette commande crée ces deux fichiers:

ls -la /var/lib/awstats/

-rw-r--r--  1 root root     50557 2007-07-13 22:42 awstats072007.www.luxpopuli.fr.txt
-rw-r--r--  1 root root      2787 2007-07-13 22:42 dnscachelastupdate.www.luxpopuli.fr.txt

Pour voir le résultat au format HTML il suffit de taper cette URI dans votre navigateur:

http://www.luxpopuli.fr/awstats/awstats.pl?config=www.luxpopuli.fr

ce qui devrait vous renvoyer une belle page comme celle-ci:

:
Dans L'URI ci-dessus, le premier «awstats» qui suit le nom de domaine (ici luxpopuli.fr) est défini par la directive
ScriptAlias /awstats/ "/usr/local/awstats-6.7/wwwroot/cgi-bin/"
ajoutée au fichier de configuration du serveur apache à l'étape 3.

:
Pour obtenir le lien Mise à jour immédiate, en haut de la page, il faut que la directive AllowToUpdateStatsFromBrowser du fichier awstats.www.luxpopuli.fr.conf soit positionné à 1
Ce lien a le même effet que la ligne de commande ./awstats.pl -config=www.luxpopuli.fr -update et permet donc de mettre les statistiques à jour directement à partir de la page web des statistiques.

:
Pour que les pages de AWStats soient en français, il suffi que la langue par défaut de Firefox soit le français. Pour cela, aller dans Edition/Préférences puis sélectionner Général/Langues... et positionner Français (france) [fr-fr] en première position.

Configurer le thème avec eZ publish

La mise en oeuvre d'un hôte virtuel avec eZ publish rend l'accès aux différents sous-répertoires et fichiers du répertoire d'installation de AWStats. Reportez vous au paragraphe sur la configuration du thème de l'article AWStats : configurer pour plus d'informations.

Explications [ 1 ]

Les lignes ajoutées au fichier de configuration d’Apache sont celles-ci:

823 #
824 # Directives to allow use of AWStats as a CGI
825 #
826 Alias /awstatsclasses "/usr/local/awstats-6.7/wwwroot/classes/"
827 Alias /awstatscss "/usr/local/awstats-6.7/wwwroot/css/"
828 Alias /awstatsicons "/usr/local/awstats-6.7/wwwroot/icon/"
829 ScriptAlias /awstats/ "/usr/local/awstats-6.7/wwwroot/cgi-bin/"
830
831 #
832 # This is to permit URL access to scripts/files in AWStats directory.
833 #
834 <Directory "/usr/local/awstats-6.7/wwwroot">
835     Options None
836     AllowOverride None
837     Order allow,deny
838     Allow from all
839 </Directory>

Les lignes 826 à 829 (dans mon cas personnel bien sûr) permettent de convertir les requêtes de type http://www.luxpopuli.fr/ awstats/un_script_perl (scripts perl qui se situent dans /usr/local/awstats-6.7/wwwroot/cgi-bin/ en une requête qui exécutera le script justement contenu dans /usr/local/awstats-6.7/wwwroot/cgi-bin/

On voit donc que ces lignes dispensent l’internaute de devoir taper une URI contenant le chemin complet de l’accès aux scripts CGI.
Les lignes 834 à 839 permettent de définir une politique d’accès au répertoire wwwroot contenant le sous-répertoire cgi-bin où sont placés les scripts servant à effectuer les statistiques. On peut ainsi définir qui peut ou non lancer ces scripts et donc avoir accès aux statistiques.

Dans le cas présent, cas par défaut, tout le monde peut lancer ces scripts.

RAPPEL: [ 2 ] Les lignes 834 et 836 indiquent qu’aucun droit particulier autre que les droits par défaut ne peut s’appliquer à compter de /usr/local/awstats-6.7/wwwroot

Il serait donc tout à fait inutile de positionner .htaccess dans le répertoire wwwroot ou dans l’un de ses quelconques sous-répertoires (la directive AllowOverride a un effet récursif) !

Commentaires