Piwik et Nginx sur NetBSD
Le LUG dont je suis membre utilise Piwik pour analyser les visites de leur site Internet. J’utilise depuis le début de ce blog Google Analytics sans jamais vraiment avoir cherché d’alternative, et il se trouve que Piwik est un projet libre.
J’ai donc installé Piwik en couple avec mon Nginx sur mon serveur, et j’en ai profité pour écrire un rapide Howto dans la même veine que celui pour Owncloud.
Piwik
Piwik est un logiciel téléchargeable d’analyse Web en temps réel open source (sous licence GPL). Il vous fournit des rapports détaillés sur les visiteurs de votre site Web: moteur de recherche et mots clés utilisés, leurs langues, vos pages les plus populaires… et bien plus encore.
Piwik se veut être une alternative open source à Google Analytics.
Source : http://fr.piwik.org/
Dépendances
Pour utiliser Piwik, il faut au minimum installer (via pkgin ou pkgsrc) :
graphics/php-gd
databases/php-pdo_mysql
databases/mysql55-server
databases/mysql55-client
converters/php-iconv
textproc/php-dom
www/php-fpm
www/nginx
Installation de Piwik
On télécharge la dernière archive, et on la décompresse :
wget http://builds.piwik.org/latest.tar.gz
tar xvzf latest.tar.gz
cp -rfv piwik/* /var/www/piwik.solevis.net
Configuration de PHP
Ajouter les extensions installés dans php.ini
${EDITOR} /usr/pkg/etc/php.ini
extension=gd.so
extension=pdo.so
extension=dom.so
extension=pdo_mysql.so
extension=iconv.so
Configuration de MySQL
On démarre le serveur :
echo "mysqld=YES" >> /etc/rc.conf
/etc/rc.d/mysqld start
On utilise l’assistant d’installation pour sécuriser un minimum le serveur :
mysql_secure_installation
Ensuite on créé un utilisateur spécifique pour le Piwik et une base de données associée :
mysql -u root -p
mysql> use mysql;
mysql> CREATE USER 'piwik'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';
mysql> create database piwik;
mysql> GRANT ALL PRIVILEGES ON piwik.* TO 'piwik'@'localhost' WITH GRANT OPTION;
Configuration de Nginx
Une configuration basique pour Piwik :
server {
listen 80; ## listen for ipv4
server_name piwik.solevis.net;
access_log /var/log/nginx/piwik.access.log;
error_log /var/log/nginx/piwik.error.log;
root /var/www/piwik.solevis.net/;
index index.php index.html;
location / {
try_files $uri /index.php;
}
# enable php
location ~* ^/(?:index|piwik)\.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Pour une configuration beaucoup plus avancée, on peut se référer à ce projet : https://github.com/perusio/piwik-nginx
Démarrage
echo "nginx=YES" >> /etc/rc.conf
echo "php_fpm=YES" >> /etc/rc.conf
/etc/rc.d/nginx start
/etc/rc.d/php_fpm start