LINUX:Geneamania

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

retour au logiciels de Généalogie


But

Geneamania est un autre programme serveur. Il est plus simple et par ce fait est moins complet. En outre, lors de l'importation d'un fichier GedCom, l'importation des informations liées à des fichiers médias n'est pas supportée. Il faut effectuer l'importation de chaque média individuellement et effectuer sa liaison avec un individu, une famille ou un événement manuellement. Nous nous intéresserons à la version Linux; à l'origine, la version pour Windows était privilégiée. On l'installe sur un serveur et via un interface Web, on accède à notre généalogie. Consultez leur site: https://https://www.geneamania.net/


Téléchargement

Sous Linux, on peut effectuer la commande:

wget  https://tech.geneamania.net/Telechargements/Geneamania.zip

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

On crée un répertoire geneamania; on y place ce fichier ZIP et on s'y place.

mkdir geneamania
cp Geneamania.zip geneamania/
cd geneamania

On décompresse ce fichier dans ce répertoire:

unzip Geneamania.zip

On peut détruire ce fichier 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

Note: Ce logiciel est très lent lors du chargement d'un fichier GedCom. Il faut allonger le délais d'attente au niveau d'Apache ("TimeOut 1200") et de PHP ("max_execution_time = 1200").


Apache

On déplace ce répertoire "geneamania" 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 "geneamania.conf" dans le répertoire "/etc/httpd/conf.d":


Alias "/geneamania" "/web/geneamania"
<Directory "/web/geneamania">
 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
 
  RewriteEngine On
# supprimer un double slash
  RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
  RewriteRule . %1/%2 [R=301,L]
# supprimer un double geneamania
  RewriteCond %{REQUEST_URI} ^(.*)/geneamania/geneamania/(.*)$
  RewriteRule . %1/geneamania/%2 [R=301,L]
 
</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

Le bloc en gras permet de corriger un bug qui apparaît à de nombreux endroits. En effet, comme nous utilisons un sous répertoire dans notre domaine, celui-ci est doublé notamment lors de l'utilisation de l'icône "Accueil": par exemple l'URL: https://serverdb.home.dom/geneamania/ devient https://serverdb.home.dom/geneamania/geneamania/ Cette configuration réécrit ce doublon en une simple occurrence.


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/geneamania


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/geneamania
find /web/geneamania-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 "dbgeneamania".

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


DROP SCHEMA IF EXISTS dbgeneamania ;
CREATE SCHEMA dbgeneamania ;

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 "usergeneamania". 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 'usergeneamania'@'localhost' identified by '<MOT_DE_PASSE_GENEAMANIA>' ;
grant all privileges on dbgeneamania.* to 'usergeneamania'@'localhost';

Vous y remplacez le mot de passe "<MOT_DE_PASSE_GENEAMANIA>" 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/genamani/install.php

Si vous avez introduit http://serverdb.home.dom/genamani/, vous aurez ce message.



Et vous serez redirigé vers le bon site.



Dans cet écran, remplissez le nom de la base de données "dbgeneamania", le nom d'utilisateur Mysql "usergeneamania" et son mot de passe comme créé au point précédent. Et on clique sur le bouton du bas "Mettre à jour les paramètres". Le fichier "/web/geneamania/connexion_inc.php" sera créé avec ces informations.

Dans l'écran suivant, cliquez sur le bouton "Initialisation".



La base de données est initialisée. Vous êtes invité en bas de l'écran de rejoindre l'écran d'accueil.



Note: Il est conseillé de désactiver ce script "/web/geneamania/install.php", par exemple, en le déplaçant, l'effaçant ou changeant son extension.


Accueil et menu général

Voici vous êtes à pied d'oeuvre.



A droite dans la barre noire, vous avez le menu général que vous retrouverez dans tous les écrans; il vous donne accès à toutes les fonctionnalités du logiciel. Il est très long. Pour la suite, nous y ferons référence.



Si nécessaire, vous pouvez vous connecter avec l'utilisateur "gestionnaire" avec son mot de passe par défaut "gestionnaire".


Paramétrage

Comme nous le voyons en tête de la page d'accueil, le nom du site est inconnu. Nous allons adapter ce nom. Nous prenons dans le menu général, sous le groupe "Gestion du site", le point "Paramètres généraux du site". Nous modifions la première zone.



Utilisateurs

Etape incontournable, si on a activé l'authentification, il faut gérer les utilisateurs. Via le menu général, on va au point "Liste des utilisateurs" sous la "Gestion du site".



On clique sur l'icône située à droite d'"Ajouter un utilisateur". Dans l'exemple, nous avons donné à cet utilisateur les droits de gestionnaire.



Nous avons maintenant trois utilisateurs.



Note: Il est conseillé de changer le mot de passe des utilisateurs préconfigurés "gestionnaire" et "invité".


Revenu à l'écran d'accueil, on peut s'identifier avec ce nouvel utilisateur.



Types de documents

Autre points, qui me semble important, est de créer des catégories de documents. Nous avons privilégié dans notre exemple, des catégories selon les événements principaux.

Via le menu général, on va au point "Liste des types de documents" sous la "Documents". Actuellement cette liste est vide.



On clique sur l'icône à droite de "Création d'un type de document".



On ajoute le type désiré et on valide. On procède de même pour les autres types.



Modification du code du logiciel

Environnement

Si lors de l'installation, vous avez choisi un environnement "Local" au lieu d'"Internet", la protection de votre site par une authentification est désactivée; tout le monde peut y accéder. Cet état ne peut être défini qu'à l'installation.

Si vous voulez changer cet état, il y a deux moyens:

  • modifier directement dans la base de données la zone "Environnement" de la table "general" et y remplacer la valeur "L" par "I".
  • ajouter la ligne "$Environnement = 'I';" après la ligne 130 dans le fichier script "/web/geneamania/index.php".


Taille des images

Le chargement des images liant un individu, une famille ou un événement, est fort limité; ce qui limite fortement la taille des images.

On peut changer cet état dans le fichier "/web/geneamania/parametres.php" après la ligne 21.

Il suffit de modifier la zone mise en gras:


...
// Taille maxi d'une image à télécharger
$taille_maxi_image = 150*1024; // 150Ko
 
// Hauteur, largeur, poids pour la version standard
$taille_maxi_images['w'] = 800;
$taille_maxi_images['h'] = 600;
$taille_maxi_images['s'] = 150*1024;
 
// Pour la version Premium
if (($Premium) or (!$SiteGratuit)) {
   $taille_maxi_images['w'] *= 1.5;
   $taille_maxi_images['h'] *= 1.5;
   $taille_maxi_images['s'] *= 4;
}

...


par:


...
// Taille maxi d'une image à télécharger
$taille_maxi_image = 5*1024*1024; // 5Go
 
// Hauteur, largeur, poids pour la version standard
$taille_maxi_images['w'] = 1000;
$taille_maxi_images['h'] = 1000;
$taille_maxi_images['s'] = 15*1024*1024;
 
// Pour la version Premium
if (($Premium) or (!$SiteGratuit)) {
   $taille_maxi_images['w'] *= 1.5;
   $taille_maxi_images['h'] *= 1.5;
   $taille_maxi_images['s'] *= 4;
}

...


Ces valeurs sont à adapter selon votre choix.


Bug dans l'écran "Import de documents et d'images"

Dans l'écran "Import de documents et d'images" se trouvant dans le menu sous le le point "Imports - exports", la fonctionnalité d'importations de documents est bloquée.

Cet écran permet la détection de la situation où un document est lié à un événement (exemple naissance) n'est pas présent sur le serveur. Dans ce cas, l'écran affiche ces manquements et permet le chargement des fichiers correspondants. Dans le cas des images, il n'y a pas de problème.

Pour corriger ce bug, il faut modifier le fichier script "/web/gebeamania/Import_Docs.php" vers la ligne 212. La partie mise en gras est à adapter:


$abs_doc = 0;
if ($res = lect_sql($sql)) {
       while ($enr = $res->fetch(PDO::FETCH_NUM)) {
// ADB
               switch ($enr[1]) {
                       case 'IMG' :
                        $chemin_interne = $chemin_docs_IMG;
                        if (!file_exists($chemin_interne.$enr[0])) {
                               $abs_doc++;
                               echo $enr[0]."<br>";
                        }
                        break;
                       case 'HTM' :
                        $chemin_interne = $chemin_docs_HTM;
                        if (!file_exists($chemin_interne.$enr[0])) {
                               $abs_doc++;
                               echo $enr[0]."<br>";
                        }
                         break;
                       case 'PDF' :
                        $chemin_interne = $chemin_docs_PDF;
                        if (!file_exists($chemin_interne.$enr[0])) {
                               $abs_doc++;
                               echo $enr[0]."<br>";
                        }
                        break;
// ADB : partie désactivée
//                      if (!file_exists($chemin_interne.$enr[0])) {
//                              $abs_doc++;
//                              echo $enr[0];
//                      }
               }
       }
}


Injection d'un fichier GedCom

On peut garnir notre arbre individu après individu et leurs familles manuellement. Mais nous avons choisi d'injecter les données généalogiques d'un autre logiciel. Ceci se fait au départ d'un fichier GedCom exporté d'un autre logiciel. Il est a noter que les informations exportées divergent d'un logiciel à l'autre. Il se peut qu'il faille l'adapter.

On y accède par le menu général, au point "Import Gedcom" dans le groupe "Imports - exports"; il existe de nombreuses autres façons.



On récupère le fichier GedCom et on constitue le format d'analyse des lieux. Il est à noter que si la zone à injecter ne correspond pas au format, ce lieu sera affiché en erreur. On valide. Le temps de traitement est nettement plus long que dans d'autres logiciels. Outre les lieux non décomposés, il y a à la fin une série d'erreurs. En effet, le logiciel essaye de garnir une zone de prononciation pour chaque mot mais cette partie est prévue pour la table de caractères de Microsoft Windows et nous UTF-8 de Linux. Tous les mots ayant une lettre accentuée, sont affichées en erreur. Ca ne porte pas à conséquence.



Fichier GedCom et médias

Lors de l'injection d'un fichier GedCom, le logiciel ne traite pas les balises liées aux fichiers images. Il faudra les injecter et les lier à un individu, une famille ou à un événement manuellement.

Les images liées à un individu, par exemple un portrait, ou à une famille, se retrouveront sur le serveur dans le répertoire "/web/geneamania/Images_Util".

Les images liées à un événement (naissance,...) se retrouveront sur le serveur sous le répertoire "/web/geneamania/documents" dans des répertoires selon les catégories:

  • IMG : fichier image
  • PDF : fichier PDF
  • TXT : fichier texte
  • HTM : fichier HTML


Consultation et édition des individues et de leur famille

Nous allons passer en revue un individu de façon basique.

Nous démarrons dans l'écran d'accueil où on introduit le nom et le prénom d'une personne dans la zone de recherche. Il est à noter qu'on peut utiliser des caractère "jocker" (exemple: "*"). On clique ensuite sur le bouton "Rechercher" du bloc "Personnes".



Dans la liste qui s'affiche, on choisit le premier.



Nous obtenons un résumé concernant ce dernier.



En haut à droite, nous avons une série d'icônes. Il faut apprendre à les utiliser car, à côté du menu principal déjà abordé de nombreuses fois, le seul moyen d'aller dans les écrans dépendants de l'écran d'entrée, est de les utiliser.



Nous allons prendre la sixième icône à partie de la gauche; un menu pop-up s'ouvre; on y choisit "Arbre standard".



Revenons à l'écran précédent et maintenant, cliquons sur la troisième icône à partir de la droite. Nous rentrons en mode édition de l'individu.



De nouveau en haut à droite nous avons une autre série d'icônes. Nous prenons la seconde à partir de la gauche. Nous allons ajouter un portrait de cet individu.



Arrivé dans cet écran, on clique sur l'icône derrière le libellé "Ajouter".



On sélectionne l'image dédiée et on lui donne un titre. On valide.



La liste des images de cet individu est amendée. On en ajoute d'autres si nécessaire. On peut modifier celle qui vient d'être ajoutée (icône à droite de l'image. Ceci fait, on clique sur le bouton "Retour".



Dans notre fiche principale, on voit apparaître le portrait.



Maintenant qu'on a ajouté une image, on va ajouter un acte de naissance. On passe à l'onglet "Documents". On choisit la seconde solution: "Lier un document à la personne en créant la fiche document" (icône à la droite de cet intitulé.

On pouvait choisir la première option mais dans ce cas le document devait déjà être téléchargé. La seconde option effectue les deux opérations: téléchargement et liaison à un individu.



Nous avons un écran ressemblant à celui de l'incorporation d'une image. Ici, il ne faut pas oublier à lier ce document à un type de document parmi ceux créés plus haut. On valide.



On peut ajouter d'autres documents.



Passons maintenant à l'onglet "Filiations - unions". Via cet écran, on peut définir ses parents et son ou ses conjoints.



Par exemple, en cliquant sur l'icône située derrière le nom du conjoint, on arrive à la page concernant le mariage.

Ici on pourrait ajouter un document relatant l'acte de mariage (onglet: "documents") ou définir leurs enfants (onglet: "Enfants").



Si on revient en arrière (bouton: "Valider" ou "Annuler"), de façon similaire, on peut accéder à la page définissant les parents (onglet: "Filiations - unions") en cliquant sur l'icône à droite des noms des parents.







retour au logiciels de Généalogie