Coolride Posté(e) le 9 juin 2014 Signaler Posté(e) le 9 juin 2014 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 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" 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 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. 4
Lazer Posté(e) le 9 juin 2014 Signaler Posté(e) le 9 juin 2014 Merci pour le tuto Ca donne quoi en performances d'affichage des graphs ce petit Raspberry PI ?
Coolride Posté(e) le 9 juin 2014 Auteur Signaler Posté(e) le 9 juin 2014 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. 1
acidric Posté(e) le 10 juin 2014 Signaler Posté(e) le 10 juin 2014 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 :-)
Steven Posté(e) le 10 juin 2014 Signaler Posté(e) le 10 juin 2014 Il l'a dit, il l'a fait ... merci @Coolride 1
Lazer Posté(e) le 10 juin 2014 Signaler Posté(e) le 10 juin 2014 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 ) 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. 1
Ez3kiel Posté(e) le 26 octobre 2014 Signaler Posté(e) le 26 octobre 2014 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...
Lazer Posté(e) le 26 octobre 2014 Signaler Posté(e) le 26 octobre 2014 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 ?
Ez3kiel Posté(e) le 26 octobre 2014 Signaler Posté(e) le 26 octobre 2014 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 En tous cas , merci pour votre boulot à tous les 2, c'est sur que je n'y serais jamais arrivé tout seul
Messages recommandés