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














