Voila une bonne chose de faite.

Encore un projet qui me trotait dans la tête depuis des mois, avoir un reporting global site par site de tous les domaines hébergés sur le serveur. C'est chose fait grace à Webalizer.

Fonctionnement

  • Parcourt tous les fichiers ayant une extension (ex: gougueule.com) présents à la racine du répertoire sites-enabled définis dans Apache 2 (à définir dans $racine)
  • Trouve le fichier de log (access) correspondant au site
  • Trouve le répertoire racine du site
  • Execute la commande webalizer sur le fichier de log trouvé en sortant le résultat à la racine du site hébergé en nommant le rapport avec le nom de domaine du site

Un exemple de résultat

Ce répertoire et les fichiers ont des droits insuffisants pour être effacé en FTP par l'utilisateur.

Ce script fonctionne avec des sites définis en VirtualHost en suivant la syntaxe :

<VirtualHost *>
DocumentRoot "/racine/des/sites/gougueule/"
ServerName www.gougueule.com
ServerAlias gougueule.com gougueule.net www.gougueule.net
CustomLog /racine/des/logs/des/sites/gougueule.com combined
CustomLog /racine/des/logs/de/apache2/access.log combined
</VirtualHost>

Pour executer le script, donnez lui les droits d'execution suffisants ou faites tout simple

php webalizer2

Le script doit être éxécuter en tant que root ou équivalent.

Have fnu !

PS : Bientôt une version awstats si j'ai envie :)