Date de publication: le samedi 14 juillet 2007 à 04h07
Dernière modification: par Pascal BOYER le dimanche 16 mars 2008 à 13h59
« Article précédent: AWStats : installer
» Article suivant: AWStats : sécurité et cron
Quelques messages d'erreur
L'installation de AWStats 6.7 peut vous amener à rencontrer certains messages d'erreur. Je vous propose ici des solutions à certains d'entre eux.
Accès aux scripts refusé
Le premier message d'erreur auquel vous pouvez être confronté est relatif à l'accès aux scripts perl par le serveur Apache. Au moindre problème d'accès, le message ci-dessous s'affiche dans le navigateur:
En regardant les droits du répertoire /usr/local/awstats-6.7/
ls -la /usr/local/awstats-6.7/
total 28 drwxr-x--- 5 root root 4096 2007-07-07 13:05 . drwxrwxrwx 13 root staff 4096 2007-07-14 02:50 .. drwxr-x--- 3 root root 4096 2006-01-28 22:45 docs -rw-r----- 1 root root 6717 2007-07-03 00:09 README.TXT drwxr-x--- 4 root root 4096 2006-01-28 22:22 tools drwxr-x--- 7 root root 4096 2006-01-28 22:21 wwwroot
...on constate que le serveur web n'a aucun droit sur les fichiers et répertoires. La commande ci-dessous remédie au problème en modifiant récursivement le groupe propriétaire:
chown -R root:www-data /usr/local/awstats-6.7/
eZ publish ne veut pas afficher AWStats
Sous eZ publish, il est fort probable que votre serveur web Apache contienne une (voire plusieurs) section VirtualHost vous permettant, par exemple, de supprimer l'affichage de index.php dans les URI formés par eZ publish.
Supposons:
- que eZ publish soit installé à la racine du serveur,
- que la racine du serveur soit /usr/local/www/,
- que le fichier httpd.conf contienne une section VirtualHost comme décrite dans l'article Virtual host setup -- Configuration du mode "Hôte virtuel"
- que vous avez suivi l'article AWStats : installer
...alors, arrivé au paragraphe Utiliser AWStats de l'article sus-citer, vous pouvez, avec une URI de type:
http://www.luxpopuli.fr/awstats/awstats.pl?config=www.luxpopuli.fr
...vous heuter à ce message d'erreur:
Pour y remédier, il suffit d'ajouter la ligne suivante:
RewriteRule ^/awstats - [L]
à la liste des règles de réécriture du fichier httpd.conf, exactement comme pour l'
exemple de phpMyAdmin
.
Ne reste plus alors qu'à relancer Apache:
/etc/init.d/apache restart
Restarting apache 1.3 web server....
Pas de module CGI
Si le module CGI n'est pas configuré pour être chargé par le serveur Apache, alors toute exécution du script awstats.pl à partir de votre navigateur, comme c'est le cas avec cet URI:
http://www.luxpopuli.fr/awstats/awstats.pl?config=www.luxpopuli.fr
...provoquera l'affichage de cette fenêtre:
Normalement, cela ne devrait pas se produire dans la mesure ou toutes les versions précompilées de Apaches 1.3.x des distributions Linux sont compilées par défaut avec le module CGI intégré. Donc, lorsque vous installez Apache 1.3 vous obtenez, entre autres, ce fichier:
vi /etc/apache/modules.conf
# Autogenerated file - do not edit! # This file is maintained by the apache package. # To update it, run the command: # /usr/sbin/apache-modconf apache ClearModuleList AddModule mod_so.c AddModule mod_macro.c LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule status_module /usr/lib/apache/1.3/mod_status.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so <================ ICI !!!!!!!!! LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
...qui charge automatquement le module CGI.
Access au fichier de log refusé
Une fois l'installation de AWStat réussie et sa page principale affichée, et si vous avez validé l'option permettant d'afficher en haut de cette page le lien Mise à jour immédiate, vous pouvez obtenir, en cliquant sur ce lien, non pas l'exécution du script awstats.pl, mais ceci:
La première chose à faire est de contrôler les droits sur les répertoires et fichiers de log du serveur Apache:
ls -la /var/log/apache/
total 47832 drwxr-xr-x 2 root root 4096 2007-07-08 06:25 . drwxr-xr-x 7 root root 4096 2007-07-13 06:25 .. -rw-r----- 1 root adm 40025231 2007-07-14 05:31 access.log -rw-r----- 1 root root 5821826 2007-07-08 06:20 access.log.1 -rw-r----- 1 root adm 1955005 2007-07-14 05:27 error.log -rw-r----- 1 root root 1097289 2007-07-08 06:25 error.log.1
Dans l'exemple ci-dessus, l'accès en lecture au répertoire /var/log/apache/ est possible pour le serveur web mais pas du tout pour les fichiers puisque le groupe Other n'a absolument aucun droit.
Une première chose à faire est de modifier le groupe propriétaire du fichier access.log:
chown root:www-data /var/log/apache/access.log
Mais le piège de ce problème vient du fait que les fichiers de log du serveur Apache sont régulièrement renommés (et compressés) puis recréés automatiquement avec des propriétaires et des droits prédéfinis. Le système qui gère cette rotation des fichiers de log (qui n'est pas propre seulement à Apache) est logrotate dont les fichiers de configuration sont placés dans le répertoire /etc/logrotate.d/
Voici le contenu du fichier de configuration de la rotation des fichiers de log de Apache:
vi /etc/logrotate.d/apache
/var/log/apache/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if [ -f /var/run/apache.pid ]; then \
if [ -x /usr/sbin/invoke-rc.d ]; then \
invoke-rc.d apache reload > /dev/null; \
else \
/etc/init.d/apache reload > /dev/null; \
fi; \
fi;
endscript
}
La huitième ligne de ce fichier indique au système que tout nouveau fichier de log sera créé:
- avec pour propriétaire root
- avec pour groupe adm
- avec pour droits 640 (rw-r-----)
Vous devez-donc modifier correctement cette ligne afin de définir des droits suffisant pour le serveur Apache.
Accès au fichier dnscachelastupdate.www.luxpopuli.fr.txt refusé
Lorsque vous cliquez sur le lien Mise à jour immédiate, il est possible que s'affiche, en haut de page, ce message:
En regardant les droits sur les fichiers du répertoire /var/lib/awstats/:
ls -la /var/lib/awstats/
total 68 drwxr-xr-x 2 www-data www-data 4096 2007-07-14 23:54 . drwxr-xr-x 29 root root 4096 2007-07-14 01:26 .. -rw-r--r-- 1 www-data www-data 51223 2007-07-14 23:54 awstats072007.www.luxpopuli.fr.txt -rw-r--r-- 1 root root 3074 2007-07-14 05:59 dnscachelastupdate.www.luxpopuli.fr.txt
...on voit immédiatement qu'il faut modifier le groupe propriétaire et ses droits pour que le serveur web puisse écrire dans le fichier dnscachelastupdate.www.luxpopuli.fr.txt:
chown root:www-data /var/lib/awstats/dnscachelastupdate.www.luxpopuli.fr.txt
chmod g+w /var/lib/awstats/dnscachelastupdate.www.luxpopuli.fr.txt
Ce qui permet d'ontenir:
ls -la /var/lib/awstats/
total 68 drwxr-xr-x 2 www-data www-data 4096 2007-07-15 01:35 . drwxr-xr-x 29 root root 4096 2007-07-14 01:26 .. -rw-r--r-- 1 www-data www-data 51537 2007-07-15 01:35 awstats072007.www.luxpopuli.fr.txt -rw-rw-r-- 1 root www-data 3074 2007-07-14 05:59 dnscachelastupdate.www.luxpopuli.fr.txt
...et de pourvoir mettre à jour les statistique avec le lien Mise à jour immédiate.
Commentaires














