Procedure d'installation pour Aquariomate

@Auteur: mis@
@date: 15 septembre 2005@


Table des matieres:


1. Pré-requis

1.0. Définitions

On appelera la machine "Serveur", l'ordinateur qui collecte les données et sur lequel les équiepements 1-wire sont reliés via la prise USB.
On appelera la machine "Client", l'ordinateur sur lequel les données seront consultées. Cette machine peut etre la machine serveur.

1.1.Hardware

Pour le Serveur:
L'installation peut se faire sur toute machine de type x86 (processeurs Intel ou AMD, 32bits* ou 64bits*), PC ou portable disposant au minimum de la configuration suivante:
- Processeur 300MHz
- Memoire: 128Mo
- Carte graphique: peut importe
- 1 Prise USB de libre

Le logiciel étant fait pour gérer des équipements de type 1-wire, de tels équipements doivent etre disponible.

Note: vous pouvez toujours essayer le logiciel sans ce matériel pour tester les fonctionnalitées (voir paragraphe 1.5).

Pour le Client:
N'importe quelle machine pourvue d'une connection reseau et d'un browser web.

Note: aucune version du site n'est valable pour le moment pour les machine de type PDA. Le support se fera peut etre par la suite.

1.2.OS

Pour le Serveur:
La version d'Aquariomate distribuée est destinée aux machines Linux, car les technologies employées se bases sur des programmes disponibles seulement sous cet OS.
La distribution n'est à priori pas importante. Evidemment les distribution de type Live-CD ne sont pas supportées.

Une version windows ou MacOS verra peut etre le jour suivant la disponibilité des développeurs et du matériel à disposition.

Pour le client:
N'importe quel OS sur lequel un browser Web peut tourner.

1.3.Softwares

Les packages suivants doivent etre installés:
Pour le serveur:

Pour le client:
browser web: firefox, mozilla, IE (si le client est sous Windows), Opera, Safari (si le client est sous MacOS), ...

Note: il est évident que pour des raisons de sécurité, je vous conseille pour le moment de ne pas autoriser d'autres machines que localhost à acceder à votre logiciel. Le systeme de login/mot de passe n'étant pas assez sécurisé pour le moment. Ce qui revient à avoir la meme machine comme Client et comme Serveur ou à etre sur un réseau local sécurisé.

Pour savoir si ces packages sont installés et leurs versions tapez les lignes de commandes suivante:
  • rpm -qa |grep httpd
  • rpm -qa |grep mysql
  • rpm -qa |grep php
  • rpm -qa |grep perl

Pour jpgraph, il faut que la version soit la 1.19 et que son répertoire d'installation soit:
/var/www/aquariomate/jpgraph-1.19

Sans cela, vous ne pourrez pas visualiser les graphiques. Il est donc plus facile d'installer jpgraph APRES Aquariomate.

Pour installer ces packages tapez les commandes suivantes:
yum install httpd
yum install mysql-server mysql
yum install php php-mysql

Si la commande yum n'est pas installée. Vous n'utilisez pas Fedora !

1.4. Les configurations de tests

Voici la description de la machine sur laquelle on effectue les essais:

Processeur: Pentium4 HT
Memoire: 1Go
OS: Linux Fedora Core 2
Kernel: 2.6.9-1.6_FC2smp (obtenu avec la commande 'uname -a')

Packages:
  • httpd-2.0.51-2.9
  • mysql-server-3.23.58-16.FC2.1
  • mysql-3.23.58-16.FC2.1
  • php-mysql-4.3.10-2.4
  • php-pear-4.3.10-2.4
  • php-mbstring-4.3.10-2.4
  • php-4.3.10-2.4
  • perl-Parse-Yapp-1.05-31
  • perl-Net-DNS-0.45-3
  • perl-DateManip-5.42a-1
  • perl-libwww-perl-5.79-1
  • perl-XML-Encoding-1.01-25
  • perl-Digest-HMAC-1.01-12
  • perl-Filter-1.30-5
  • perl-URI-1.30-1
  • perl-HTML-Tagset-3.03-29
  • perl-XML-Parser-2.34-2
  • perl-libxml-enno-1.02-30
  • perl-Digest-SHA1-2.07-4
  • perl-DBI-1.40-4
  • perl-5.8.3-18
  • perl-HTML-Parser-3.35-5
  • perl-libxml-perl-0.07-29
  • perl-Time-HiRes-1.55-2
  • perl-XML-Dumper-0.71-1
  • perl-DBD-MySQL-2.9003-4
Pour récupérer les différents modules de Perl il vous suffit de taper:
perl -MCPAN -e 'shell'
puis dans le shell qui s'ouvre à vous:
install XXXXXX
XXXX est par example: DBI
en ne mettant pas la version.

1.5. Configuration pour un essai sans équipement 1-wire

Il vous suffit d'installer et de configurer Aquariomate. L'installation d'aquariomate vous installe sous /tmp/aquariomate/demo/1wire des rertoires simulant des équipements 1-wire.
Sur la page "Admin" d'Aquariomate, vous entrez ce path puis vous clickez sur "Rechercher". La base de donnée est alors remplie avec ces équipements de tests.

2. Installation du logiciel

Vous pouvez vous procurer le logiciel de 3 façons:
- RPM
- TAR/GZ
- CVS

Note: l'installation se fait sous /var/www par defaut. Vous pouvez tout aussi bien le faire sous /var/www/html mais il vous faudra alors configurer des chemins dans les fichiers de configuration.

2.1. RPM

Le RPM est un moyen simple d'avoir tout d'installé automatiquement et d'etre sur d'avoir les bons packages sur sa machine.

Télechargez le RPM sous /tmp.
Puis entrez la command:
rpm -ivh aquariomate-xxxx.rpm

Il ne vous reste plus qu'à configurer la base de donnée:
http://localhost/phpmyadmin

Note suivant les versions:
Le RPM vous oblige à installer jpgraph AVANT Aquariomate.
Cependant, vous devez aprés effectuer la manipulation suivante:
ln -s <repertoire-d'installation-de-jpgraph> /var/www/aquariomate/jpgraph-1.19

Il n'y a plus de dépdance par rapport à jpgraph, seulement vous etes quand meme obligé de l'installer !
ln -s <repertoire-d'installation-de-jpgraph> /var/www/aquariomate/jpgraph-1.19

2.2 TAR/GZ

Là, on ne se pose pas de questions, on suppose que tout est installé, et on extrait directement sous /var/www
tar zxvf aquariomate-xxxx.tar.gz

Et on fait le lien avec jpgraph comme au dessus ou alors on dé-zippe directement jpgraph-1.19.tar.gz sous /var/www/aquariomate
cd /var/www/aquariomate; tar zxvf /tmp/jpgraph-1.19.tar.gz

2.3. CVS

On peut utiliser le CVS, mais les gens qui le feront connaissent l'informatique et donc n'ont pas besoin de cette doc !

3- Configuration

ATTENTION: Toutes les commandes lancées par la suite se font en temps qu'utilisateur ROOT sur votre machine. Pour cela tapez:
su -

3.1. Configuration de Apache

La version d'apache utilisée est la version Apache2.
Commencez par vérifier le fichier:
/etc/httpd/conf.d/aquariomate.conf

Si pour une raison ou une autre, il n'existe pas voici ce qu'il contient:
---- DEBUT DU FICHIER ---
Alias /aquariomate /var/www/aquariomate
                                                                               
<Location /aquariomate>
    Order allow,deny
    Allow from all
</Location>

---- FIN DU FICHIER ----


3.2. Configuration de mysql

La configuration de la base de donnée se fait dans le fichier: /etc/aquariomate.conf.php
Les données écrites dans ce fichier doivent etre en accord avec ce que vous allez definir grace à phpMyAdmin.

3.3. Configuration de PHP

Il faut modifier le fichier suivant de maniere à 'tuner' un peu PHP pour améliorer les choses ... sinon vous risquez d'avoir des erreurs imprévues !

Fichier à modifier: /etc/php.ini
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
                                                                                                                
max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60     ; Maximum amount of time each script may spend parsing request data
memory_limit = 64M      ; Maximum amount of memory a script may consume (8MB)

puis plus loin:

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0


ça vous evitera d'avoir à vous identifier toutes les 2 secondes et en plus, les graphiques seront plus à l'aise pour se créer.

3.3. Configuration de la base de donnée avec phpmyadmin

Downloader l'outils sur:
http://www.phpmyadmin.net/home_page/

Dé-zipper le sous:
/var/www/html

ensuite, allez à l'adresse:
http://localhost/phpmyadmin

Vous allez arriver sur une page qui ressemble à cela:


Cliquez sur 'Privileges', puis ajouter l'entrée aquariomate avec les memes droits que l'image suivante:



Si vous rencontrez des problemes avec phpMyadmin, des tutoriaux sont sur leur site.

3.4. Configuration d'Aquariomate

Adaptez le fichier aquariomate.conf.php si besoin et faites les modifications correspondantes sous phpmyadmin.
Changez le mot de passe et le login dans la base de donnée.

Il faut maintenant mettre en route les 'cron' qui permettent d'aller chercher les valeurs automatiquement sur les équipements.
Pour cela, on utilise:
crontab -e


Ajoutez les lignes suivantes dans le fichier pour que les valeurs soient lues toutes les minutes:
0-59 * * * 1-7 perl /var/www/aquariomate/scripts/aquariomate.pl > aquariomate.log
0-59 * * * 1-7 perl /var/www/aquariomate/scripts/ruleswatcher.pl > ruleswatcher.log


Vous pouvez evidemment changer les valeurs.

Note IMPORTANTE: avec cette configuration par défaut, votre site n'est accessible que depuis le 'localhost'. Pour changer cela, vous devez modifier dans les fichiers de configuration et les scripts perl, en changeant 'localhost' par votre nom de machine.

4- Mise en marche et essais

Deux cas s'offrent à vous, soit vous avez du matériel 1-wire branché sur votre brise USB, soit vous n'avez pas de matériel et vous pouvez utiliser le répertoire d'exemple:  /var/www/aquariomate/demo/1wire

Dans tous les cas on commence par redemarrer tous les 'deamon' pour prendre en compte les changements de configuration:

mysqld_safe &
httpd -k restart


4.1. Pas d'équipement 1-wire branché

Sous /var/www/aquariomate/demo/1wire, vous devez avoir l'arborescence suivante:
1wire
|-- 09.F05C88010000
|   |-- PIO.A
|   `-- type
|-- 09.F05C88010001
|   |-- PIO.A
|   `-- type
|-- 09.F05C88010002
|   |-- PIO.A
|   `-- type
|-- 09.F05C88010003
|   |-- PIO.A
|   `-- type
|-- 10.487D7847488
|   `-- temperature
|    -- type
|-- 10.487D7847489
|   `-- temperature
|    -- type
`-- 2C.F05C88010002
    |-- type
    `-- wiper


Démarrer votre browser web préferé (http://www.getfirefox.com) et tapez l'URL suivante:
http://localhost/aquariomate

4.2. Equipement 1-wire branché sur votre bus USB

Vérifiez que le systeme de fichier OWFS est bien accessible et que l'utilisateur de la base de donnée peut lire/ecrire les fichiers, sinon reportez-vous à la documentation de koala_sprint sur aquasquale, ou au site http://owfs.sf.net

4.3. Détection des équipements et génération de la base de donnée

A la premiere connection, vous devez initialiser la base de donnée juste en cliquant sur le bouton de la page d'accueil.
Si tout est correctement configuré sur votre ordinateur, vous arrivez sur la page de login, où vous entrez votre Login/MotdePasse (admin/admin par defaut). La session ainsi ouverte est valable jusqu'à la fermeture de votre browser web. Cela peut etre changé en modifiant la valeur du timeout dans php.ini.

Allez ensuite dans le menu 'Configuration' et entrez le chemin de votre répertoire où se trouve la description des équipements.
Pour la démo: /var/www/aquariomate/demo/1wire
Puis, appuyez sur 'Rechercher'
Le resultat s'affiche alors devant vous, si tout va bien vous pouvez alors tranquillement utiliser les autres fonctionnalitées !

Pour que la base de donnée se peuple de donnée, vous pouvez par example lancer à la main:
/var/www/aquariomate/scripts/aquariomate.pl
et si vous avez défini des règles:
/var/www/aquariomate/scripts/ruleswatcher.pl

5. Messages d'erreurs et solutions

1) J'ai un message d'erreur MySQL qui s'affiche quand je me connecte sur http://localhost/aquariomate
Message:
Warning
: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) in /var/www/aquariomate/database.inc.php on line 31
Failed to connect to MySQL: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
Solution:
Démarrer le deamon MySQL avec la commande suivante:
$ safe_mysqld&
Et rechargez votre page web.

2) Je n'arrive pas à 'monter' l'arborescence de fichier 1-wire avec OWFS
Message:

Solution:

3) Je n'arrive pas à visualiser les graphiques
Message:

Solution:
Vous n'avez pas correctement installé jpgraph et/ou vjpgraph n'a pas assez de mémoire pour générer les graphiques. Editez le fichier /etc/php.ini et modifiez la valeur de memory.limit à 64M ou plus.

6. FAQ