LINUX:GeneoTree

De WIKI sur Linux (ADB)
Aller à la navigation Aller à la recherche

retour au logiciels de Généalogie


But

GeneoTree est un autre programme serveur qui permet de publier ses arbres en chargeant un fichier GedComm dans sa base de données. Il ne permet aucune édition. Nous nous intéresserons à la version Linux; il existe une version pour Windows. On l'installe sur un serveur et via un interface Web, on accède à notre généalogie. Consultez leur site: https://www.geneotree.com/


Téléchargement

Sous Linux, on peut effectuer la commande:

wget https://sourceforge.net/projects/geneotree/files/geneotree/GeneoTree%20V5.03/geneotree5_03.zip/download -O geneotree.zip

pour récupérer la dernière version 5.03.

On décompresse ce fichier:

unzip geneotree.zip


Prérequis

Ce logiciel nécessite:

  • un serveur Web Apache
  • un gestionnaire de base de données de type MySQL tel MariaDB
  • un interpréteur PHP

Dans mon cas, ces produits sont tous sur une même machine Linux


Apache

On déplace ce répertoire "geneotree" parmi nos autres sites Web; dans notre exemple sous le répertoire "/web".

ATTENTION: L'exemple de configuration le présente comme un des sites de votre domaine. Si ce site doit être accessible en direct, cette configuration qui suit doit être adaptée en conséquence.

On crée une configuration pour ce site dans Apache. On crée un fichier "geneotree.conf" dans le répertoire "/etc/httpd/conf.d":


Alias "/geneotree" "/web/geneotree"
<Directory "/web/geneotreee">
 Options +FollowSymLinks -Indexes
 AllowOverride All
 <IfModule mod_authz_core.c>
       Require all denied
       Require ip 127.0.0.1
       Require ip 192.168.1
 </IfModule>
 Include conf.d/php8.cfg
</Directory>

On limite l'accès à notre réseau privé "192.168.1.0/24".

La commande "AllowOverride All" permet l'activation des fichiers spéciaux ".htaccess". Il nous servira par la suite.

Nous avons utilisé la version 8.4 de PHP. Voyez l'article sur Coexistence de plusieurs versions de PHP. D'où la ligne:


 Include conf.d/php8.cfg

Ne pas oublier de relancer le service Apache:

systemctl restart httpd.service


Droits

Ce répertoire doit appartenir à l'utilisateur "apache" sous lequel s'exécute le service 'httpd.service":

chown -R apache:apache /web/geneotree


Comme le produit propose régulièrement une mise à jour automatique, il est plus aisé de laisser les droits d'écriture en plus de la lecture:

chmod -R 750 /web/geneotree
find /web/geneotree-type f -print0 | xargs -0 chmod 640


MariaDB

Avant tout début de configuration, il est plus aisé que la base de données MariaDB (MySQL) comprenne un schéma vide qui va accueillir vos données.

Nous avons nommé ce schéma "dbgeneotree".

Voici le script SQL qui permet de le créer à vide; on nomme ce script: "schema.sql":


DROP SCHEMA IF EXISTS dbgeneotree ;
CREATE SCHEMA dbgeneotree ;

On l'exécute via la commande:

mysql --user=root --password=<MOT_DE_PASSE_DE_ROOT>  < ./schema.sql

avec un nom d'utilisateur de la base de donnés qui a les droits administrateur.


Il nous faut en outre, créer un utilisateur dans cette base de données qui a tous les droits sur ce schéma nouvellement créé. On lui a donné le nom "usergeneotree". C'est lui que le logiciel utilisera pour accéder à nos données.

Voici le script SQL qui permet de le créer et de lui attribuer des droits nécessaires; on nomme ce script: "user.sql":


create user 'usergeneotree'@'localhost' identified by '<MOT_DE_PASSE_GENEOTREE>' ;
grant all privileges on dbgeneotree.* to 'usergeneotree'@'localhost';

Vous y remplacez le mot de passe "<MOT_DE_PASSE_GENEOTREE>" par celui désiré.

On l'exécute via la commande:

mysql --user=root --password=<MOT_DE_PASSE_DE_ROOT>  < ./user.sql

avec un nom d'utilisateur de la base de donnés qui a les droits administrateur.


Configuration

Maintenant que tout est en place, on peut lancer la configuration qui se fait directement via l'interface Web. Si notre serveur Web se "serverdb.home.dom", on lance l'URL: http://serverdb.home.dom/geneotree

Comme c'est la première fois qu'on y accède, le système détecte qu'il n'y a pas de tables dans la base de données ni de fichier de configuration. L'écran est assez classique.



Dans cet écran, remplissez le nom de la base de données "dbgeneotree", le nom d'utilisateur Mysql "usergeneotree" et son mot de passe comme créé au point précédent. Si vous le désirez, vous pouvez ajouter un mot de passe pour l'administration et un pour les invités. Le site ne prévoit pas de gestion complète de la sécurité. L'administrateur est utilisé pour le chargement ou la destruction d'un arbre. L'invité quant à lui, peut consulter les arbres.

Dès que les zones sont remplies, on clique sur le bouton "Tester". Nous n'avons pas configuré la partie FTP car nous avons un accès complet à notre serveur.


L'écran se modifie légèrement. Si c'est bon, on clique sur le bouton "Valid" pour créer la base de données.



La configuration entrée sera placée en début de fichier "/web/geneotree/config.php". Nous y retrouvons nos mots de passe. On peut modifier cette configuration manuellement, par exemple, en commentant ("//" devant la ligne) les mots de passe administrateur et invité pour ouvrir complètement l'accès ou éventuellement les changer.


Authentification

Si vous avez mis un mot de passe pour les invités, vous aurez cette boîte d'authentification quand vous voudrez consulter un arbre.



De même quand vous cliquez sur le bouton "Administration", vous aurez cette autre boîte.



Chargement d'un arbre

La première étape consiste à placer les fichiers de base nécessaires.

  • Le fichier GedCom: Le fichier GedCom que nous avons récupéré d'un autre logiciel sera placé dans le répertoire "/web/geneotree/gecom/". Attention ce fichier sera composé d'un nom sans séparateur tel un point et ayant l'extension "ged". Par exemple "de_bast.ged". Ce nom sera utiliser comme titre de notre arbre. Plusieurs fichiers GedCom peuvent être chargé. Il en existe un à titre de démonstration "royal_small.ged" qui reprend un arche réduit de la dynastie des rois d'Angleterre. Le fichier GedCom peut faire référence à des images.
  • Les images: L'interface permet d'inclure des images, par exemple, des actes et des portraits. Au préalable, on crée un sous-répertoire du nom du fichier GedCom dans le répertoire "/web/geneotree/picture" par exemple "/web/geneotree/picture/de_bast". On place nos images dans celui-ci sans sous-répertoires.

Ne pas oublier d'adapter les privilèges: appartenance à l'utilisateur "apache" et droits de lecture, écriture comme défini en début d'article.


La seconde étape consiste à charger ce fichier GedCom dans la base de données. Vous accédez à l'interface Web de ce logiciel via l'URL: https://serverdb.home.dom/geneotree/.

Vous remarquez qu'il n'y a pas d'arbre chargé.

Au passage, si nécessaire, cliquez sur le drapeau de la langue désirée.



On clique sur le bouton "Administration" en haut à droite.

Dans ce écran, on retrouve les deux fichiers GedCom présents dans le répertoire "/web/geneotree/gecom/".



On clique sur la grosse flèche, présente dans le tableau au niveau de la ligne du fichier "de_bast.ged".

Le chargement s’enclenche. Après quelques minutes, l'opération est terminée.



Sur le serveur, on peut consulter les journaux "de_bast.log" et "de_bast_w.log" se trouvant dans le répertoire "web/geneotree/log" et y découvrir quelques messages d'erreurs.

En cliquant sur le bouton "OK", on peut démarrer la consultation.

Mais revenons à l'écran d'administration. Pour y arriver, on clique sur l'icône de la maison en haut à gauche puis sur le bouton "Administration".



Sur la ligne du fichier chargé, on clique sur l'avant dernière l'icône "Edit"; une fenêtre s'ouvre au dessus. En cochant "Non" et ensuite en cliquant sur la disquette en dessous, les informations sensibles (dates) des individus n'ayant pas atteint 75 ans seront visibles. Cette dernière opération est facultative.



On peut maintenant cliquer sur le nom de notre arbre (colonne "Base") pour visionner notre arbre.

Après nettoyage (icône de la dernière colonne), on peut recharger à nouveau cet arbre.


Fichier GedCom et médias

Si le fichier GedCom comprend les balises permettant de déterminer le nom des fichiers médias (portraits, actes,... sous forme d'images par exemple) en liaison avec un individu, une famille ou des événements (naissance, déces,...) et si ces fichiers médias se trouvent déjà sur le serveur à leur emplacement dédié, le logiciel les repère et effectue la liaison. Ces images apparaissent alors dans l'interface Web. GeneoTree ne supporte pas la répartition des médias dans divers sous-répertoires.

Par exemple, pour notre exemple "/web/geneotree" et notre arbre "de_bast", ils doivent tous se retrouver dans le répertoire "/web/geneotree/picture/de_bast".


Consultation

En accédant à notre URL de base, notre arbre est enfin disponible. On clique sur celui-ci (première colonne).



Nous accédons à un arbre. On navigue en cliquant sur les grosses flèches de gauche ou de droite. A droite, on a une synthèse de l'arbre.



Si on clique sur le nom d'un individu, cette partie droite est remplacée par les informations détaillées de cet individu ainsi que son ascendance, sa descendance et ses collatéraux.



Consultez d'autres informations via le menu du haut. Vous y trouverez nombre d'informations regroupées par thème.


Note

Il faut remarquer que dans le fichier GedCom, dans le bloc d'informations liées à une famille, le n° de l'époux "HUSB" et celui de l'épouse "WIFE" doivent arriver en tête avant l'événement, mariage par exemple ("MARR"), sinon, dans l'arbre, le cadre dédiée au conjoint sera vide.

Exemple:


0 @F2@ FAM
1 HUSB @I1@
1 WIFE @I2@
1 MARR
2 DATE 30 SEP 1925
2 PLAC Namur,Namur,Wallonie,Belgique,
1 CHIL @I3@
1 CHIL @I4@

Pour information de base, la structure d'un fichier GedCom est composée de diverses lignes. Chaque ligne débute par un numéro définissant le niveau d'imbrication.

Le niveau "0" est suivi d'un numéro d'individu ou de famille. La troisième zone détermine si c'est celui d'un individu ("INDI") ou d'une famille ("FAM").

Les niveaux suivants débutent par leur numéro d'ordre suivi d'un code informant du type d'information et les zones suivantes sont les informations relative à ce code. Par exemple, "1 MARR" ouvre un bloc de type mariage de la famille "F2" ("0 @F2@ FAM"). La zone "2 DATE 30 SEP 1925" donne la date du mariage, le 30/9/1925. Les deux lignes débutant par "1 CHIL" donne les n° des enfants de cette famille.


Le fichier d'extraction du site Geneanet comporte ce problème. Pour le résoudre, j'ai fait un petit script en PHP.

Ce script est téléchargeable via le lien ci-dessous:

Télécharger le fichier ZIP contenant le script

Il faut le dézipper avec la commande suivante sous Linux:

unzip Inversion.famille.zip

En début de script, on modifie les noms des fichiers GedCom, celui à traiter ("importation.ged") et celui résultant ("exportation.ged"). A noter que chaque ligne du fichier GedCom doivent débuter par le n° de début d'instruction comme décrit ci-dessus; il ne peut contenir de lignes combinées spécialement pour le bloc lié aux familles.

Le script et le fichier à traiter doivent être dans le même répertoire sauf adaptation spécifique du script.

On rend ce script exécutable et on l'exécute par la commande suivante:

./inversion.famille.php

ou

php ./inversion.famille.php
 




retour au logiciels de Généalogie