Aller au contenu

Messages recommandés

Posté(e)

0. Présentation

 

Pour ceux qui n'ont pas de NAS ou qui ont tout simplement décidé de ne pas le laisser tourner en permanence,  je vous propose ici un petit tuto pour installer l'outil de graphs écrit par Lazer (Excellent outil au passage !), sur un Raspberry Pi. Ces petites bêtes ne consomment que quelques watts et sont donc parfaites pour ce genre d'application.

J'ai basé ce tuto sur la distribution raspbian qui est une version légère de Gnu/linux debian.

En général, le serveur web apache est utilisé pour servir les pages web mais dans ce cas-ci j'ai préféré nginx qui est plus léger et surtout plus performant. Toujours au nom de la légèreté, j'ai décidé de tout faire en ligne de commande.

 

Alors c'est parti !

 

Pour ce tuto, il vous faudra

  • un Raspberry pi (version B si possible )
  • une carte SD d'au moins 4GB
  • un cable HDMI
  • un clavier
  • du courage pour me lire

 

 

1. L'image Raspbian

 

L'image raspbian est disponible toute faite sur http://www.raspberrypi.org/downloads/ il suffit de la télécharger. Attention elle fait quand même 700 mégas en version compressée et 2.1GB une fois l'archive décompressée.

 

2. Installation de l'image sur une carte SD.

 

Désolé, je n'ai que des machines Linux, je ne pourrai donc pas fournir la procédure pour windows  mais une visite sur le site de cédric Locqueneux vous aidera, il y présente l'outil Win32 Disk imager. Ah oui, je tenais aussi à  vous informer que je ne saurais être responsable si vous foirez votre coup et avez formaté votre disque dur au lieu de la carte SD :15:

 

sous Linux on peut facilement trouver l'info en utilisant dmesg.

dmesg

[204748.519273] mmc0: new SDHC card at address aaaa
[204748.522511] mmcblk0: mmc0:aaaa SL16G 14.8 GiB 
[204748.529784] mmcblk0: p1 p2

Ma carte SD est donc montée en tant que mmcblk0. un petit fdisk -l /dev/mmcblck0 me permet de m'assurer qu'il s'agit bien d'une unité de stockage de 16GB.

fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 15.9 GB, 15931539456 bytes
4 heads, 16 sectors/track, 486192 cylinders, total 31116288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000981cb

        Device Boot      Start         End      Blocks   Id  System

dd est l'outil idéal pour transférer l'image sur la carte. Patientez un moment, dd ne retourne rien avant d'avoir fini. Une fois l'image copiée il suffira d'insérer la carte SD dans votre raspberry et de le démarrer. Ah oui n'oubliez pas de le connecter à  votre télé avec un câble HDMI par exemple.

dd if=2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0 bs=1M

Après avoir démarré votre framboise vous aurez droit à  un menu texte qui vous permet de configurer votre clavier, d'activer le serveur ssh et tutti quanti. je n'ai pas pu prendre de captures d'écrans du setup initial mais c'est tellement clair que cela n'aurait fait qu’alourdir ce tuto.

 

Entrons maintenant dans la partie la plus amusante j'ai nommé LEMP.  (LAMP mais avec nginx). connectez-vous en ssh ou sur la console bien que je trouve la console moins rigolote.

 

3. Mise a jour du repository debian

 

on commence par mettre ma liste des paquets à  jour

root@raspberrypi:~# apt-get update

ensuite on met notre raspberry pi à  jour

root@raspberrypi:~# apt-get upgrade
64 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 106 MB of archives.
After this operation, 8,957 kB disk space will be freed.

4. Installation de mysql

root@raspberrypi:~# apt-get install mysql-server

[ ok ] Starting MySQL database server: mysqld . ..
[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
Setting up mysql-server (5.5.37-0+wheezy1) ...

Juste après l'installation il vous sera demandé d'introduire un mot de passe pour l'utilisateur root. je ne me suis pas trop cassé la tête je crois en mettant "pi" :P

 

gallery_569_112_9640.jpeg

 

 

 

4.1 création de la base de donnée pour les graphs

 

on commence par se connecter a Mysql qui vous demandera un mot de passe ("pi") pour ceux qui n'ont pas suivi  :15:

root@raspberrypi:/# mysql -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.5.37-0+wheezy1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE fibaro;
Query OK, 1 row affected (0.00 sec)

Tout c'est bien passé mais si vous doutez encore on peut vérifier cela.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| fibaro             |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

4.2 Importation des tables

mysql> use fibaro
Database changed


mysql> source /tmp/graphs/charts.sql

Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.01 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.02 sec)
Query OK, 0 rows affected (0.03 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.01 sec)

On vérifie que tout s'est bien passé.

mysql> show tables;
+---------------------------+
| Tables_in_fibaro          |
+---------------------------+
| domotique_battery         |
| domotique_battery_day     |
| domotique_device          |
| domotique_device_type     |
| domotique_humidity        |
| domotique_humidity_day    |
| domotique_power           |
| domotique_power_day       |
| domotique_room            |
| domotique_temperature     |
| domotique_temperature_day |
| domotique_type            |
+---------------------------+
12 rows in set (0.00 sec)

4.3 Création de l'utilisateur

 

Ici on crée un utilisateur fibaroadmin qui aura les droits nécessaires sur la base de données nommée fibaro, et uniquement sur localhost. et comme je ne me casse toujours pas la tête j'ai aussi utilisé le mot de passe "pi". fibaroadmin et son mot de passe devront être renseignés dans le fichier config.inc.php

mysql> GRANT ALL PRIVILEGES ON fibaro.* TO 'fibaroadmin'@'localhost' IDENTIFIED BY 'pi' WITH GRANT OPTION;

mysql> quit
Bye

5. Installation de NGINX

root@raspberrypi:/# apt-get install nginx

et voilà . c'est fait... enfin presque.

 

5.1 Changement de racine Web

 

Par défaut, nginx installe sa racine web sous /usr/share/nginx/www/ mais je n'aime pas tellement cela j'ai donc décidé de la changer vers /srv/www. vous n'êtes pas obligés de faire de même, si c'est le cas vous devrez un peu adapter le tuto à  votre situation. Merci a Ez3kiel pour son retour, je glisse ici un petit update, /srv/www n'existe pas d'office on le crée et lui donne les droits qui vont bien.

root@raspberrypi:~# mkdir -p /srv/www
root@raspberrypi:~# chown -R www-data:www-data /srv/www

Editez le fichier /etc/nginx/sites-available/default  comme suit

root@raspberrypi:~# vi /etc/nginx/sites-available/default

remplacez

root /usr/share/nginx/www;

par

root /srv/www;

ajoutez aussi index.php sur la ligne index juste en dessous

index index.html index.htm index.php;

enlevez aussi les #  et adaptez  comme suit.

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

                # With php5-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

6. Installation de PHP

root@raspberrypi:~# apt-get install php5-fpm php5-mysql

[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.

Comme indiqué dans la configuration de nginx il faut rendre php5-fpm plus restrictif

exécutez la ligne suivant pour gagner un peu de temps.

root@raspberrypi:~# sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php5/fpm/php.ini

7. Vérification finale.

redémarrez PHP et nginx

root@raspberrypi:~# service php5-fpm restart
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.

root@raspberrypi:~# service nginx restart
Restarting nginx: nginx.

créez une page phpinfo.php. Vous pouvez faire la page à  la mano ou bien copier le contenu suivant

root@raspberrypi:~#  cat <<EOF >/srv/www/phpinfo.php
<?php
phpinfo();
?>
EOF

ensuite pointez dessus avec votre browser préféré  http://<ipdevotreframboise/phpinfo.php. Si tout s'est bien passé, vous devriez avoir un tableau reprenant la configuration de  PHP, je vous invite à  suivre le tuto de Lazer précité pour finaliser votre serveur de graphiques à  3 watts.

 

 

Voili Voilou.

  • Upvote 4
Posté(e)

Je dois dire que c'est plutôt réactif.  je ne l'ai pas stipulé dans le tuto mais au premier démarrage pendant le setup il y a un menu qui  permet de l'overclocker, ce que j'ai fait. je l'ai poussé pas trop haut. De base il tourne a 700Mhz et je l'ai poussé a 900 Mhz. il peut aller jusque 1Ghz mais vu que XBMC  est déjà  très très fluide en 900 Mhz je n'ai pas jugé nécessaire de le monter plus haut. mais oui c'est tres rapide. je ne vois pratiquement pas de différences avec l'interface tournant sur mon NAS.

 

Dès que j'ai le temps je jetterai un coup d'oeil a raspbmc voir si ils fournissent les mêmes packages et si c'est le cas je referai l'exercice.

  • Upvote 1
Posté(e)

a c'est bon ca, merci pour le tuto, il faut vraiment que je m'y mette... par contre j'ai un doute sur les performances, surtout quand il y aura 1 an de donnée...

à  voir...

 

pour infos, sur le raspberry l'overclock à  900 Mhz est officielement suporté, ca veut dire... sans risque hardware, ca serait dommage de s'en priver, au dela c'est déja moins stable et le risque plus grand, mais on peut lire que jusqu'au mode turbo le raspberry est toujours sous garantie.... perso, je ne prendrais pas le risque :-)

Posté(e)

J'ai reçu aujourd'hui ma PiFace pour mon Rapsberry PI qui pourrit depuis 10 jours dans un tiroir (oui 10 jours c'est trop long pour un super bidule comme ça :D )

 

Vais installer Raspbian, ça va être facile avec ce tuto :)

 

L'usage ne sera pas pour faire des graphs (encore que je peux toujours essayer d'importer ma base de données dessus pour voir ce que ça donne, depuis décembre je commence à  avoir pas mal de data). Comme Acidric, j'ai quelques doutes, mais justement ça pourrait me forcer à  optimiser les tables et requêtes.

Ce montage me servira surtout pour ses 8 entrées numériques utilisées comme compteurs d'impulsions.

  • Upvote 1
  • 4 mois après...
Posté(e)

Salut, 

 

je me suis essayé à  suivre ce tuto et j'avance difficilement mais je progresse quand même.Je voulais partage avec vous cette petite contribution :

  • 1 er point de blocage : 
GRANT ALL PRIVILEGES ON fibaro.* TO 'fibaroadmin'@'localhost' IDENTIFIED BY 'pi' WITH GRANT OPTIONS;

j'obtiens un joli message d'erreur , en fouinant un peu j'en suis venu à  ça : 

GRANT ALL PRIVILEGES ON fibaro.* TO 'fibaroadmin'@'localhost' IDENTIFIED BY 'pi' WITH GRANT OPTION;
  • 2eme point : Ensuite, j'ai appliqué le tuto de l'ami Lazer mais je n'avais rien d'autre qu'une erreur 403, j'ai du ajouter ceci en plus sur le raspberry : 
chown -R www-data:www-data /srv/www

Y'a du mieux, en tapant http://192.168.1.XX/graph/ dans un navigateur j'obtiens quelque chose à  savoir la page noire des graphs avec le "Loading please wait". ( un probleme connu de user/pwd vu sur le tuto de Lazer).

Affaire à  suivre...  :D

Posté(e)

Une idée en passant (normalement ça devrait être bon, mais on ne sait jamais) : vérifie dans le php.ini que tu as bien "short_open_tag = On"

 

Et est-ce que la page admin.php se charge ?

Posté(e)

Salut Lazer,

Alors en fait c'est bon , j'avais zappé le port sur le module virtuel et j'ai modifié le fichier config.inc.php en changeant 

// MySQL Server hostname or IP address
$server = '192.168.1.37';

par 

// MySQL Server hostname or IP address
$server = 'localhost';

et du coup ça roule !! Je regarde ce qu'on peut faire avec ces beaux graphiques, on se retrouvre sur le topic de ton tuto, j'aurais certainement des questions à  te poser quand j'aurais lu tout le topic pour ajouter des données dans la base :15:

 

En tous cas , merci pour votre boulot à  tous les 2, c'est sur que je n'y serais jamais arrivé tout seul :60:

×
×
  • Créer...