Skip to content
Snippets Groups Projects
Select Git revision
  • 3330d51e668a399088fe9825922b7e78b5dd2803
  • master default protected
  • release_1.5.0
  • release_1.4.0
  • release_1.3.0
  • nouveau_privilege
  • release_1.2.0
  • 8.4
  • release_1.1.0
  • release_1.0.6
  • release_1.0.5
  • release_1.0.4
  • Notification_redondance
  • move_DE
  • 1.4.1
  • 1.4.0
  • 1.3.1
  • 1.3.0
  • 1.2.4
  • 1.2.3
  • 1.2.2
  • 1.2.1
  • 1.2.0
  • 1.1.0
  • 1.0.7
  • 1.0.6
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
30 results

installation.md

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.

    Documentation pour l'installation et la configuration du projet

    1. Présupposition
    2. Installation
    3. Configuration
    4. Installation du modèle de données et données de base
    5. Synchronisation des données du SIRH
    6. Paramètrages
    7. Troubleshooting

    Présupposition

    Les présuppositions suivantes seront faites ici, mais elles peuvent être contournées.

    Système d'exploitation

    Le serveur utilise debian comme système d'exploitation. Une autre distribution linux peut-être utilisée facilement en modifiant légèrement les commandes systèmes utilisées. Il sera en revanche surement plus complexe de réaliser l'installation sous MacOS ou Windows. Mes Formations n'a pas été testée sous ces autres systèmes d'exploitations.

    Moteur web et PHP

    Nous utilisons PHP-FPM et Apache sur les instances de l'Université de Caen Normandie. Il est surement possible d'en utiliser ici d'autres en adaptant les configurations qui seront décrites dans la suite.

    Supposition sur le système

    Nous supposerons aussi que si le serveur est derrière un proxy alors les variables d'environnement associées sont bien positionnées. Notamment les variables http_proxy et https_proxy.

    Nous supposerons que Mes Formations sera installée dans le répertoire /var/www/html du serveur. Ceci est facilement contournable en modifiant les configurations du serveur web.

    Base de données interne

    **La base de données de Mes Formations est une base de données pgsql avec l'extension unaccent (qu'il faut penser à installer et s'assurer que l'application/usager pourra utiliser).


    Installation de PHP8, des modules/extensions utiles et autres choses utiles

    L'installation de PHP8 et des modules/extensions se fait directement avec le gestionnaire de paquet de la distribution utilisée ; dans le cas de debian il s'agit de apt.

    user@serveur:/var/www/html$ apt install php-fpm
    user@serveur:/var/www/html$ apt install php8.2-bcmath php8.2-intl php8.2-ldap php8.2-xml php8.2-mbstring php8.2-gd php8.2-curl php8.2-pgsql

    On aura besoin de l'application git pour la récupération du dépôt et les futures mises à jour

    user@serveur:~$ apt install git

    On aura besoin de composer (en version 2.x) pour la récupération des bibliothèques php.

    user@serveur:~$ apt install composer

    Récupération du dépôt et des bibliothèques associées

    La prochaine étape consiste à cloner le dépôt.

    user@serveur:~$ cd /var/www
    user@serveur:/var/www$ git clone https://git.unicaen.fr/open-source/mes-formations.git html

    Le fichier composer.json contient la liste des bibliothèques nécessaires. Elle s'installe grâce à composer.

    user@serveur:/var/www$ cd html
    user@serveur:/var/www/html$ composer install

    Création des répertoires nécessaires

    Créez les répertoires suivants si ce n'est pas déjà fait :

    user@serveur:/var/www/html$ mkdir -p ./data/DoctrineORMModule/Proxy
    user@serveur:/var/www/html$ mkdir -p ./upload

    Assurez-vous que ces répertoires ont les permissions appropriées.


    Configuration

    La configuration à la charge de l'établissement est contenue dans les fichiers local.dist contenus dans le répertoire ./config/autoload. Ces configurations doivent être adaptées aux besoins spécifiques de l'établissement, et l'extension .dist doit être retirée.

    Liste des fichiers distants :

    • database-app.local.php.dist
    • database-sirh.local.php.dist
    • local.php.dist
    • synchro.local.php.dist
    • unicaen-app.local.php.dist
    • unicaen-authentification.local.php.dist
    • unicaen-evenement.local.php.dist
    • unicaen-fichier.local.php.dist
    • unicaen-ldap.local.php.dist
    • unicaen-mail.local.php.dist

    Configuration des BDD et de BDDADMIN

    La configuration de l'envoi des courriers électroniques passe par le fichier database-app.local.php et database-sirh.local.php. Il est nécessaire de récupérer la configuration et d'adapter celle-ci.

    user@serveur:/var/www/html$ cp config/autoload/database-app.local.php.dist config/autoload/database-app.local.php
    user@serveur:/var/www/html$ cp config/autoload/database-sirh.local.php.dist config/autoload/database-sirh.local.php

    Il y a deux connexions à paramétrer :

    • la connexion à la base de données de Mes Formations orm_default
    • la connexion à la base de données du concentrateur de données ou SIRH orm_sirh Pour la configuration, il est nécessaire de préciser le serveur, la base, l'utilisateur et le mot de passe dans les clefs correspondantes.

    Pour simplifier le paramétrage, les déclarations des secrets liés aux bases de données passent par des constantes.

    Configuration de l'envoi des courriers électroniques

    La configuration de l'envoi des courriers électroniques passe par le fichier unicaen-mail.local.php. Il est nécessaire de récupérer la configuration et d'adapter celle-ci.

    user@serveur:/var/www/html$ cp vendor/unicaen/mail/config/unicaen-mail.local.php.dist config/autoload/unicaen-mail.local.php

    Dans ce fichier, on retrouve :

    1. le paramètrage sur SMTP ;
    2. le paramètrage du comportement de l'envoi des courriers électronique.

    La configuration du SMTP passe par la clef transport_options

    'transport_options' => [
        'host' => 'smtp.mon-etablissement.fr',
        'port' => 25,
    ],

    La configuration du comportement passe par la déclaration des clefs suivantes :

    • do_not_send si à true aucun courrier n'est envoyé ;
    • redirect si à true alors les courriers seront tous redirigés vers les adresses de la clef redirect_to ;
    • redirect_to est un tableau d'adresse électronique vers qui les courriers seront redirigés (la virgule est le séparateur) ;
    • subject_prefix est le préfixe des sujets des courriers (si la valeur est 'MesFormations' alors les sujets seront "[MesFormations] Mon sujet de courrier" ;
    • from_name est le nom de l'expéditeur
    • from_email est l'adresse électronique de l'expéditeur
    • reply_to est l'adresse fournit pour la réponse à un courrier expédié par l'application

    N.B. : Attention Mes Formations peut envoyer beaucoup de mail. Il est nécessaire de white-lister l'adresse électronique d'expédition des courriers électroniques et/ou d'utiliser une adresse noreply et de bien paramètrer la clef reply_to.

    Paramétrage de l'authentification

    L'authentification est à paramétrer par le biais de deux fichiers :

    1. config/autoload/unicaen-ldap.local.php paramètrage de l'accés au LDAP
    2. config/autoload/unicaen-authentification.local.php paramètrage des modes d'authentification

    Tout d'abord renommé les fichiers dist

    user@serveur:/var/www/html$ mv config/autoload/unicaen-ldap.local.php.dist config/autoload/unicaen-ldap.local.php
    user@serveur:/var/www/html$ mv config/autoload/unicaen-authentification.local.php.dist config/autoload/unicaen-authentification.local.php

    Paramétrage dans le fichier config/autoload/unicaen-ldap.local.php

    Ce paramètrage est assez immédiat ici, il s'agit de paramètrer l'accés au ldap pour la récupération d'information sur les utilisateurs connectés.

    Attention en fonction des identifiants de l'établissement à décommenter la bonne ligne à propos de accountFilterFormat.

    **N.B: **

    • Pour Caen, il s'agit du supannEmpId
    • Pour Aix-Marseille et Rouen, il s'agit de l'uid

    Paramétrage dans le fichier config/autoload/unicaen-authentification.local.php

    Dans ce fichier, il est question de paramètrer le mode d'authentification parmi : CAS, LDAP (et compte local), et shibboleth (pas de test réalisé ici pour le moment).

    L'activation de CAS passe par la déclaration du serveur à contact

    'cas' => [
        // laisser vide si pas de cas
        'connection' => [
            'default' => [
                'params' => [
                    'hostname' => 'cas.XXXX.fr',
                    'port'     => XXX,
                    'version'  => "2.0",
                    'uri'      => "",
                    'debug'    => false,
                ],
            ],
        ],
        'form_skip' => true,
    ],

    N.B. : form_skip permet d'éviter le formulaire d'identification si l'utilisateur a déjà un jeton d'identification valide

    L'activation de LDAP passe par le fait de positionner la variable enable à true de même pour les comptes locaux db.

    'local' => [
        'order' => 2,
        'enabled' => true,
        'description' => "Utilisez ce formulaire si vous possédez un compte LDAP établissement ou un compte local dédié à l'application.",
        'db' => [
            // doit être activé pour que l'usurpation fonctionne (cf. Authentication/Storage/Db::read()) :-/
            'enabled' => true,
        ],
        'ldap' => [
            'enabled' => true,
            'username' => XXX,
        ],
    ],

    Paramétrer le comportement des messages d'erreur config/autoload/local.php

    Ce fichier permet de paramètrer l'affichage des différents messages d'erreur.

    user@serveur:/var/www/html$ mv config/autoload/local.php.dist config/autoload/local.php

    Paramétrer les liens externes de l'application

    Ce fichier permet de paramètrer les liens externes notamment du pied de page

    user@serveur:/var/www/html$ mv config/autoload/unicaen-app.local.php.dist config/autoload/unicaen-app.local.php

    Installation du modèle de données et données de base

    Lancez la commande suivante pour exécuter le processus d'installation :

    user@serveur:/var/www/html$ ./vendor/bin/laminas bddadmin:install

    Après l'installation, vérifiez que les données ont été correctement insérées par la mise à jour.


    Synchronisation des données de votre SIRH

    Configurez le fichier de synchronisation selon les besoins du projet et les fichiers de base de données sources comme décrit dans la documentation sur les connecteurs.

    Pour lancer la synchronisation, suivez lancer la commande suivante :

    user@serveur:/var/www/html$ ./vendor/bin/laminas synchroniser

    N.B. : Il est possible de réaliser la synchronisation d'une table individuellement via la commande

    user@serveur:/var/www/html$ ./vendor/bin/laminas synchroniser SYNCHO_NAME

    N.B. : Une bonne pratique est de paramètrer la synchronisation dans un cron. Par exemple

    0 7 * * 1-5 /var/www/html/vendor/bin/laminas synchroniser 

    Paramètrages

    Les paramètres de l'application

    Les paramètres de l'application sont déclarés et modifiable directement en back office dans la partie Administration > Paramètres

    Les templates

    Les templates de l'application sont déclarés et modifiable directement en back office dans la partie Administration > Template


    Troubleshooting

    Aucune résolution de lien

    Pensez à vérifier que dans la déclaration du VirtualHost la close suivante soit bien déclarée :

    RewriteEngine On

    Configuration des paramètres PHP

    Vérifiez que les paramètres suivants dans PHP sont correctement configurés à 0 :

    session.cookie_lifetime
    session.gc_maxlifetime

    Pour vérifier, consultez la configuration PHP :

    php -i | grep session.cookie_lifetime php -i | grep session.gc_maxlifetime

    Modification des paramètres

    Si les valeurs ne sont pas correctes, modifiez le fichier /etc/php/8.2/fpm/php.ini et assurez-vous que les lignes suivantes sont définies :

    session.cookie_lifetime = 0 session.gc_maxlifetime = 0

    Redémarrez le service PHP-FPM pour appliquer les modifications :

    systemctl restart php-fpm