Piwik

Piwik est une application PHP permettant de surveiller le trafic sur votre site internet. Elle est disponible sur le site http://www.piwik.org

Installation

Ajout du dépôt Debian

On commence par récupérer la clé

wget -qO - http://debian.piwik.org/repository.gpg | sudo apt-key add -

Ensuite on ajoute le dépot au fichier /etc/apt/source.list

sudo nano /etc/apt/sources.list

On y ajoute les lignes suivantes :

# Piwik
deb http://debian.piwik.org/ piwik main
deb-src http://debian.piwik.org/ piwik main

Installation

On rafraichit la liste des packages

sudo aptitude update

On installe maintenant piwik

sudo aptitude install piwik

Configuration avec Nginx

On crée le fichier de configuration

sudo nano /etc/nginx/sites-available/stats.exemple.net

Pensez à remplacer exemple.net par votre nom de domaine dans toute la suite…

server {
        listen 80;
        server_name stats.konilabs.net;

        # Parameterization using hostname of access and log filenames.
        access_log  /var/log/nginx/stats.konilabs.net.access.log;
        error_log   /var/log/nginx/stats.konilabs.net.error.log;

        # Disable all methods besides HEAD, GET and POST.
        if ($request_method !~ ^(GET|HEAD|POST)$ ) {
            return 444;
        }

        root  /usr/share/piwik;
        index  index.php index.html;

        # Support for favicon. Return a 204 (No Content) if the favicon
        # doesn't exist.

       location = /favicon.ico {
                 try_files /favicon.ico =204;
        }

        # Try all locations and relay to index.php as a fallback.
        location / {
                 try_files $uri /index.php;
        }

        # Return a 404 for all text files.
        location ~* ^/(?:README|LICENSE[^.]*|LEGALNOTICE)(?:\.txt)*$ {
                 return 404;
        }

        # Parse all .php files
        location ~ .php$ {
                 try_files $uri =404;
                 root /usr/share/piwik;
                 fastcgi_pass 127.0.0.1:9000;
                 fastcgi_index index.php;
                 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                 include /etc/nginx/fastcgi_params;
                 fastcgi_buffer_size 128k;
                 fastcgi_buffers 256 4k;
                 fastcgi_busy_buffers_size 256k;
                 fastcgi_temp_file_write_size 256k;
                 fastcgi_intercept_errors on;
        }
} # server

On crée maintenant un lien vers le répertoire site-enabled de nginx

 sudo ln -s /etc/nginx/sites-available/stats.exemple.net /etc/nginx/sites-enabled/stats.exemple.net

On redémarre Nginx

 sudo service nginx restart

Installation

Créer maintenant un utilisateur MySQL et sa base associée.
Une fois Nginx redémarré, suivre la procédure d'installation sur http://stats.exemple.net

Maintenance

Configuration de la géolocalisation

Cette étape vous permettra de localiser vos visiteurs en fonction de leur adresse IP.

 sudo aptitude install php5-geoip php5-dev libgeoip-dev

Editer ensuite le fichier de configuration 20-geoip.ini

 sudo nano /etc/php5/conf.d/20-geoip.ini

Ajouter la ligne suivante :

 geoip.custom_directory=/usr/share/piwik/misc

On redémarre maintenant PHP

 sudo /etc/init.d/php5-fpm restart

Dans Piwik dans les Paramètres > Géolocalisation, choisir : GeoIP (PECL)
Démarrer ensuite le téléchargement de la base GeoIp, et dans le champ Base de localisation, ajouter : http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

Mises à jour

Vu que Piwik est maintenu à jour par un dépot Debian, il est recommandé de ne pas faire les mises à jour automatique dans l'application. Utiliser simplement aptitude update

Cron

Attention, il y a un petit bug qui empêche le cron de fonctionner correctement.
Pour le corriger éditer le fichier /etc/php5/cli/conf.d/ming.ini

sudo nano /etc/php5/cli/conf.d/ming.ini

Remplacer le “#” en première ligne par un “;”

; configuration for php MING module
extension=ming.so

Enfin pour que Piwik auto archive les logs, il faut y associer un cron

sudo nano /etc/cron.d/piwik-archive

Ajouter la ligne suivante à la fin du fichier

5 *   * * *   www-data        /usr/bin/php5 /usr/share/piwik/console core:archive --"url=http://stats.exemple.net/" > /dev/null

Dans Piwik, dans les Paramètres > Paramètres Généraux > Paramètres d'archivage choisir l'option Non

Au besoin, vous pouvez tester le bon fonctionnement de la commande cron :

su www-data -c "/usr/bin/php /usr/share/piwik/misc/cron/console core:archive --"url=http://stats.exemple.net/"

Astuces

Faire fonctionner Piwik chez OVH

Le script de statistiques Piwik ne fonctionne pas directement chez OVH. Il y a aléatoirement des erreurs 500 et les widgets ne fonctionnent pas.

Pour corriger ce problème, il faut appliquer la modification suivante :
Dans le fichier [répertoire piwik]/config/global.ini.php

''session_save_handler = file'' 

Changez cette valeur par :

''session_save_handler = dbtable''
  • Partager le signet (social bookmarking)
  • Partager "Piwik" sur del.icio.us
  • Partager "Piwik" sur Digg
  • Partager "Piwik" sur blogmarks
  • Partager "Piwik" sur Google
  • Partager "Piwik" sur Facebook
  • Partager "Piwik" sur Twitter