TDS est le logiciel de Tetraedre pour la gestion des données provenant, entre autres, des TRMC.
TDS se compose des éléments suivants:
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
Le logiciel TDS n'est pas très gourmand en ressource et peut facilement être installé sur une machine virtuelle
Il n'y a rien de spécial à configurer pour Apache.
Sur Windows, nous déconseillons IIS !!
Dans le fichier php.ini, (en général /etc/php.ini).
Réglez les paramètres suivants (faites un backup avant !)
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
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
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.
Depuis phpMyAdmin, importez le fichier "soft_6817_f6_datamodel.sql"
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
Cliquez sur "phpinfo"
Et regardez si les extension ont été chargées correctement.
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.
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.
Verifiez que votre serveur se mettre à l'heure régulièrement.
Installez le service ntpd si il n'est pas déjà installé.
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
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"