PRODUITS

RESSOURCES

INFO TETRAEDRE

PLATEFORME WEB DE DEMO

Installation de TDS sur un serveur

Introduction

TDS est le logiciel de Tetraedre pour la gestion des données provenant, entre autres, des TRMC.

TDS se compose des éléments suivants:

  • Site Web en PHP
  • Base de données MySQL (ou MariaDB)
  • Archives
  • Tâches planifiées (cron)


La procédure décrite ci-dessous concerne une plateforme Linux. Mais l'application TDS peut également être installée sur Windows. Les différentes étapes sont très proches dans les deux cas. Nous recommandons cependant vivement d'utiliser Linux.

 

Fichiers nécessaire

  • soft_6817_f6_wwwroot.zip
  • soft_6817_f6_datamodel.sql

 

Configuration minimale pour installer TDS sur une machine virtuelle

Le logiciel TDS n'est pas très gourmand en ressource et peut facilement être installé sur une machine virtuelle

  • DD d'une taille minimum de 10 GB (50GB conseillé)
  • RAM minimum 4GB (8GB conseillé)
  • Linux distribution Ubuntu Server version supérieure à 20, debian ou Centos également accepté. P.ex: Ubuntu Server 20.04.6 LTS.
  • PHP version surpérieure ou équivalente à la 7.4 mais pas la 8.P.ex: 7.4.33
  • MySQL Attention, nous ne fournissons pas la licence MySQL. MariaDB 10 est suggéré
  • Apache version surpérieure ou équivalente à la 2.2. La version 2.4 fonctionne bien
  • Possibilité de faire des CRON
  • Port accessible depuis l'extérieur (n° de port doit être <255), port 80 par exemple. On doit pouvoir l'atteindre depuis l'extérieur via Apache.
  • Un accès SSH pour télémaintenance

 

Configuration de Apache

Il n'y a rien de spécial à configurer pour Apache.
Sur Windows, nous déconseillons IIS !!

 

Configuration de PHP

Dans le fichier php.ini, (en général /etc/php.ini).
Réglez les paramètres suivants (faites un backup avant !)

  • error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
  • display_errors = On
  • date.timezone = UTC

Fonctions à activer:
allow_url_fopen, set_time_limit

Réglez upload_max_filesize avec une valeur plus élevée que par défaut. Mettez par exemple 32M.
Idem pour post_max_size avec 32M

 

Archives zip à activer:

Debian et Ubuntu entrez les commandes suivantes

sudo apt update
sudo apt install php7.4-zip

Puis redémarrez le serveur:

sudo systemctl restart apache2

 


Extensions à activer:
GD2 (ou GD), IMAP, mbstring, MySQL, MySQLi, OpenSSL, SOAP

Il faut noter que les extension mbstring sont souvent déjà activées.
Regardez dans votre répertoire /etc/php.d

Après avoir changé php.ini, il faut redémarrer Apache avec une commande du genre

service httpd restart

 

Installation des fichiers

Le site TDS est fourni sous forme d'un fichier ZIP.
Il faut extraire ces fichiers dans le DocumentRoot de Apache (général /var/www/html).

Il faut que l'URL d'accès soit par exemple www.serveur.com/gprs/alive.php
En général on fait donc un petit move wwwroot/* /var/www/html et on supprime le répertoir wwwroot


Lors de l'extraction, vérifiez bien les droits des fichiers. Apache doit pouvoir les lire (un petit chown est peut-être nécesaire)


IL FAUT EDITER LE FICHIER __config.php
C'est le seul fichier à éditer, mais c'est important. Mettez de nouveaux mots de passe !


Vous devez changer

  • $add_root_secret
  • $db_password
  • $maintenance_password

 

Base de données MySQL

TDS est basé sur MySQL. La version utilisé n'est pas très importante. Actuellement TDS est testée avec MariaDB 10.0, MySQL 5.6, MySQL 5.0. MariaDB est une bonne base.

Nous conseillons d'installer un logiciel comme phpMyAdmin pour gérer plus facilement la base de données

il faut créer une base de données nommée "tetraedrecom1". Collation : utf8_general_ci

Il faut créer un user "datalogging" avec les droits d'accès sur tetraedrecom1.
Le mot de passe de ce user doit être "$db_password" indiqué dans le fichier __config.php

Le fichier de configuration de MySQL ou MariaDB "my.cnf" ou parfois appelé "my.ini" doit comporter le
sql_mode = "ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" (MySQL 5)

sql_mode="ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" (MySQL 8)

TDS utilise des dates nulles (par exemple 0000-00-00), il faut donc que les options NO_ZERO_DATE et NO_ZERO_IN_DATE soient désactivées. Il faut désactiver le mode STRICT SQL. 

 

Importation du datamodel

Depuis phpMyAdmin, importez le fichier "soft_6817_f6_datamodel.sql"

 

Création du premier utilisateur

Il faut aller sur la page /admin/add_root.php
Ecrivez votre username (on suggère d'utiliser l'adresse e-mail, mais c'est pas nécessaire)
Dans le champ "add_root_secret", écrivez le mot de passe $add_root_secret que vous avez défini dans __config.php


Maintenant, loggez-vous sur /admin
Entrez votre username et le même mot de passe.
Allez dans "users list", cliquez sur votre user et entrez un nouveau mot de passe, puis update

Vérification de la configuration PHP

Cliquez sur "phpinfo"
Et regardez si les extension ont été chargées correctement.

Archivage des données

Pour archiver les données, TDS va créer des fichier dans un répertoir nommé ___archive dans le root WWW.
Il est important que le code PHP aie les droits d'accès pour faire cela. Idem pour le dossier ___files_db.

Afin de tester les droits d'accès, depuis Admin, allez sur "System Test"  puis en bas de la page, cliquez sur "archive_write_test".
Si vous voyez un message du genre " Permission denied" ça signifie qu'il faut changer des droits d'accès aux répertoires.
Un chmod -R 777 html résout souvent le problème
Dans certains cas, un chown apache:apache et chmod -R 776 est aussi possible

Il faut ensuite se rendre dans le répertoire ___archive/write_test dans le root WWW et il doit s'y trouver un fichier write_test.php qu'il faut ouvrir pour vérifier qu'il contienne la date du jour.

 

Tâches planifiées

Afin que TDS puisse fonctionner, il faut appeler une tâche planifiée (CRON) fréquemment.

En général on lance la tâche toutes les 15 minutes. Sur un serveur qui doit être réactif (c'est-à-dire qu'il pousse les données sur un autre système, une fréquence de 5 minutes est un bon réglage.
Sur une application de facturation, une execution toutes les 60 minutes est suffisant.
Tout dépend de la configuration de votre infrastructure et de son but. Si vous ne savez pas quoi faire. Lancez le cron toutes les heures à :00

0 * * * * wget "http://localhost/maintenance/cronjob.php?password=XXXXX" -O /root/cron_log/cronjob.html

où XXXXX est le $maintenance_password défini dans le fichier __config.php


Ce CRON va lancer une analyse des tâches à faire.
Sur la page /admin dans "System Configuration", on doit dire ce que l'on souhaite faire.
Dans "Archive Period", il faut mettre 86400
Dans archive next, mettez le timestamp UNIX du prochain archivage.
Si vous ne savez pas quoi mettre, allez sur http://www.tetraedre.com/advanced/tool_timestamp.php et choisissez la date de ce soir à 22h40

Pour le postprocess, choisissez "Postprocess Period" de 3600 par exemple.
Et entrez le timestamp de la prochaine heure pleine.

 

Synchronisation du serveur

Verifiez que votre serveur se mettre à l'heure régulièrement.
Installez le service ntpd si il n'est pas déjà installé.

 

Test de la communication

Ouvrez la page /gprs/default.php
On doit voir un texte du genre

update=$BF000005c18055a8d97e8F55a8d988!


Ouvrez la page /gprs/alive.php
On doit voir un texte du genre

server time=1437129128;tds_version=6817_f6;db_connection_status=ok;db_connection_alt_status=unknown

Test des e-mails de notification

Dans le fichier __config.php, configurer la section "notifications" avec les paramètres SMTP pour l'expédition des e-mails de notification d'alarmes batteries et de manques de données.

Vous pouvez ensuite faire un test via la page "Admin" => "System Test" => "Send Test Mail"