Loading CHANGELOG.md +2 −0 Changes for CHANGELOG.md: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ Journal des modifications - Passage à PHP 8.0. - Ajout d'une V3 à l'API ; les V1 et V2 demeurent. - Ajout de la colonne V_SYGAL_DOCTORANT_V2.code_apprenant_in_source contenant le numéro étudiant (API V3). - Dockerfile sans dépendance à l'image Unicaen ; traduit en Dockerfile.sh pour l'install manuelle. - Mise à jour de la doc d'installation. 2.3.0 ----- Loading INSTALL.md +1 −186 Changes for INSTALL.md: 1 added line, 186 removed lines. Original line number Diff line number Diff line Installation du web service `sygal-import-ws` ============================================= Applicatif ---------- ### Première obtention des sources et installation du serveur *NB: la procédure proposée ici part d'un serveur *Debian* tout nu et couvre l'installation de tous les packages requis.* Si ce n'était pas le cas, merci de le signaler. En `root` sur votre serveur, pour obtenir les sources du WS, lancez l'une des commandes suivantes en fonction du site sur lequel vous lisez la présente page : ```bash # Si vous êtes sur git.unicaen.fr : git clone https://git.unicaen.fr/open-source/sygal-import-ws.git /app # Si vous êtes sur github.com : git clone https://github.com/EsupPortail/sygal-import-ws.git /app ``` *NB: merci de respecter dans un premier temps le choix de `/app` comme répertoire d'installation. Libre à vous une fois que tout fonctionne de changer d'emplacement et de modifier en conséquence les configs nécessaires.* ### Configuration du serveur Ensuite, placez-vous dans le répertoire des sources et jetez un oeil au script `Dockerfile.sh`. Ce script est en quelque sorte l'équivalent du `Dockerfile` du WS traduit en bash. (Vous y verrez que le dépôt git d'une image Docker Unicaen est cloné pour lancer son script `Dockerfile.sh` qui est lui aussi l'équivalent du `Dockerfile` de l'image traduit en bash.) Lancez le script `Dockerfile.sh` : ```bash cd /app bash Dockerfile.sh 7.4 ``` Ensuite, vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` : - ${APACHE_CONF_DIR}/ports.conf - ${APACHE_CONF_DIR}/sites-available/app.conf - ${APACHE_CONF_DIR}/sites-available/app-ssl.conf - ${PHP_CONF_DIR}/fpm/pool.d/app.conf - ${PHP_CONF_DIR}/fpm/conf.d/90-app.ini NB: Vérifiez dans le script `Dockerfile.sh` que vous venez de lancer mais normalement `APACHE_CONF_DIR=/etc/apache2` et `PHP_CONF_DIR=/etc/php/7.4`. ### Installation d'une version précise du WS Normalement, vous ne devez installer que les versions officielles du WS, c'est à dire les versions taguées, du genre `2.3.0` par exemple. Si vous partez de zéro, choisissez bien-sûr la version la plus récente ! Placez-vous dans le répertoire des sources du web service puis lancez les commandes git suivantes pour obtenir la liste des versions officielles du WS : ```bash git fetch && git fetch --tags && git tag ``` Si la version la plus récente est par exemple la `2.3.0`, utilisez les commandes suivantes pour "installer" cette version sur votre serveur : ```bash git checkout --force 2.3.0 && bash install.sh ``` ### Fichier "users.htpasswd" Ce fichier contient les utilisateurs/mot de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. S'il s'agit d'une simple mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. S'il s'agit de la première installation du WS, placez-vous dans le répertoire [`config`](config) des sources et lancez la commande suivante pour créer le fichier "users.htpasswd" contenant un utilisateur `sygal-app` dont le mot de passe vous sera demandé : ```bash htpasswd -c users.htpasswd sygal-app ``` Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante : ```bash pwgen 16 1 --symbols --secure ``` ### Configuration du WS S'il s'agit d'une mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. Reportez-vous aux "release notes" de la version choisie situées dans `doc/release-notes`. S'il s'agit de la première installation du WS, 2 fichiers situés dans le répertoire [`config/autoload`](config/autoload) doivent être complétés puis renommés : - **local.php.dist** : qui est notamment utilisé pour l'authentification. - clé `htpasswd` qui désigne le chemin du fichier "users.htpasswd" évoqué plus haut - **database.local.php.dist** : qui est utilisé pour la connection à la BDD. - clés `host`, `dbname`, `port`, `user`, `password` : les infos d'accès à la BDD. Une fois ces fichiers complétés, supprimez l'extension `.dist`, ex : ```bash cp -n local.php.dist local.php cp -n database.local.php.dist database.local.php ``` ### Configuration PHP pour le WS Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP `/etc/php/7.4/fpm/conf.d/90-app.ini` : display_errors = Off ... error_reporting = 0 ... opcache.enable = 1 ... xdebug.enable = 0 ### Interface d'admin Apigility Cette interface de modification du WS est réservée aux développeurs et est **INTERDITE EN PRODUCTION**. Assurez-vous de bien désactiver le mode développement : ```bash composer development-disable ``` Base de données --------------- ### Création des tables et vues sources Le WS puise dans des tables `SYGAL_*` mises à jour périodiquement à partir de vues `V_SYGAL_*`. Vous devez créer ces tables et vues dans la base de données de votre logiciel de scolarité (Apogée ou Physalis) ou autre part si c'est possible, à vous de voir. Le répertoire [`dist/SQL`](dist/SQL) contient ceci : - Un script `01-tables.sql` pour créer les tables qui contiendront les données retournées par le web service. - Un dossier `apogee` concernant les établissements ayant Apogée. - Un dossier `physalis` concernant les établissements ayant Physalis (Cocktail). Quelque soit votre logiciel de scolarité, utilisez le script `01-tables.sql` pour créer les tables `SYGAL_*`. Prenons maintenant l'exemple d'Apogée. Le répertoire `apogee` contient 2 scripts SQL : - `01-vues-apogee-communes.sql` : script de création des vues `V_SYGAL_*` communes à tous les établissements ayant ce logiciel de scolarité, ne nécessitant aucune personnalisation. - `02-vues-apogee-etab.sql` : script de création des vues `V_SYGAL_*` contenant des données propres à votre établissement en particulier, nécessitant donc une personnalisation de votre part. Prenez connaissance de ces scripts, personnalisez ceux qui le requierent puis lancez-vous/les pour créer les tables/vues nécesssaires. ### Mise à jour périodique des tables sources Le WS puise dans des tables `SYGAL_*` qui doivent être mises à jour périodiquement à partir des vues `V_SYGAL_*`. Il s'agit de CRONer l'exécution de la commande chargée de faire cette mise à jour. - Créez sur le serveur du web service le fichier de config CRON `/etc/cron.d/sygal-import-ws-cron` identique au fichier [dist/cron/sygal-import-ws-cron](dist/cron/sygal-import-ws-cron) fourni puis adaptez si nécessaire son contenu : - `APP_DIR=` : chemin vers le répertoire d'installation du web service. - `LOG_FILE=` : chemin vers le fichier de log. - `*/5` : périodicité d'exécution du script, initialisée à "toutes les 5 minutes". - Testez que CRON sera en mesure de lancer le script d'après le contenu du fichier de config. Exemple : ```bash APP_DIR=/var/www/sygal-import-ws /usr/bin/php ${APP_DIR}/public/index.php update-service-tables ``` - Vérifiez ensuite que le contenu de la table `SYGAL_INDIVIDU` (par exemple) a bien été mis à jour à l'instant grâce à la colonne `inserted_on`. Réseau ------ Vous devez autoriser le serveur sur lequel est installé le WS à être interrogé par le serveur sur lequel est installé ESUP-SyGAL. Il est conseillé de restreindre cette autorisation à cette seule adresse IP d'origine. Test ---- Reportez-vous au [README.md](README.md) pour tester l'appel du WS en ligne de commande depuis le serveur sur lequel est installé ESUP-SyGAL. Rendez-vous sur [INSTALL.md](doc/INSTALL.md). README.md +13 −31 Changes for README.md: 13 added lines, 31 removed lines. Original line number Diff line number Diff line sygal-import-ws =============== Que fait *sygal-import-ws* ? ---------------------------- *sygal-import-ws* est une API REST qui retourne les données présentes dans des tables `SyGAL_*` *sygal-import-ws* est une API REST qui retourne les données présentes dans des tables `SYGAL_*` d'Apogée ou de Physalis via des requêtes GET. Docker ------ - Obtention de l'image de base Unicaen (construite) à jour Installation ------------ ```bash PHP_VERSION=8.0 \ docker pull registre.unicaen.fr:5000/unicaen-dev-php${PHP_VERSION}-apache ``` Cf. [`INSTALL.md`](INSTALL.md). - Construction de l'image du web service Lancement du web service *pour le dévelopement* ----------------------------------------------- - Construction de l'image ```bash PHP_VERSION=8.0 \ Loading @@ -30,29 +27,13 @@ docker build \ . ``` - Lancement du web service - Démarrage du container : ```bash docker-compose up sygal-import-ws ``` Installation ------------ Cf. [`INSTALL.md`](INSTALL.md). Lancement du web service *pour le dévelopement* ----------------------------------------------- Se placer à la racine des sources du ws pour lancer la commande suivante : ```bash docker-compose up --build sygal-import-ws ``` Vérifier que le container `sygal-import-ws-container-php8.0` figure bien dans la liste des containers - Vérifier que le container `sygal-import-ws-container-php8.0` figure bien dans la liste des containers lancés listés par la commande suivante (cf. colonne `NAMES`) : ```bash Loading Loading @@ -83,7 +64,8 @@ Chaque vue en base de données peut être interrogée via un service dédié : - `/titre-acces` - `/variable` Il y a aussi un service `/version` () permettant de connaître le numéro de version du web service (ex : '2.3.0'). Autres services : - `/version` : permet de connaître le numéro de version du web service (ex : '2.3.0') Versionning de l'API Loading doc/INSTALL.md 0 → 100644 +181 −0 Changes for doc/INSTALL.md: 181 added lines, 0 removed lines. Original line number Diff line number Diff line Installation du web service `sygal-import-ws` ============================================= ## Installation du serveur Debian Bullseye Concernant l'installation du serveur d'application, n'ayant pas à Caen les compétences en déploiement Docker (autres que pour le développement), nous documenterons une installation manuelle sur un serveur *entièrement dédié à l'application*. Si vous voulez déployer l'application avec Docker, faites-le à partir du `Dockerfile` présent et n'hésitez pas à contribuer en améliorant cette doc d'install ! **NB :** La procédure proposée ici part d'un serveur *Debian Bullseye* tout nu. Elle couvre normalement l'installation de tous les packages requis, mais si ce n'était pas le cas merci de contribuer en le signalant. ### Case départ : obtention des sources de l'application En `root` sur votre serveur, obtenez les sources en lançant l'une des commandes suivantes en fonction du site sur lequel vous lisez la présente doc : ```bash # Si vous êtes sur git.unicaen.fr : git clone https://git.unicaen.fr/open-source/sygal-import-ws.git /app # Si vous êtes sur github.com : git clone https://github.com/EsupPortail/sygal-import-ws.git /app ``` *NB : merci de respecter dans un premier temps le choix de `/app` comme répertoire d'installation. Si vous êtes à l'aise, libre à vous une fois que tout fonctionne de changer d'emplacement et de modifier en conséquence les configs nécessaires sur le serveur.* ### Configuration du serveur - Vous trouverez dans le répertoire des sources récupérées à l'instant un script `Dockerfile.sh`, sorte de version sh du Dockerfile, contenant de quoi mettre à niveau et/ou installer les packages nécessaires. - Plutôt que de le lancer d'un seul bloc, ouvrez-le dans un autre terminal pour le visualiser, ce qui vous permettra de copier-coller-lancer les commandes qu'il contient par petits groupes. - Ensuite, vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` : - ${APACHE_CONF_DIR}/ports.conf - ${APACHE_CONF_DIR}/sites-available/app.conf - ${APACHE_CONF_DIR}/sites-available/app-ssl.conf - ${PHP_CONF_DIR}/fpm/pool.d/99-sygal.conf - ${PHP_CONF_DIR}/fpm/conf.d/99-sygal.ini NB: Vérifiez dans le script `Dockerfile.sh` que vous venez de lancer mais normalement `APACHE_CONF_DIR=/etc/apache2` et `PHP_CONF_DIR=/etc/php/${PHP_VERSION}`. ### Installation d'une version précise du WS Normalement, vous ne devez installer que les versions officielles du WS, c'est à dire les versions taguées, du genre `3.0.0` par exemple. Si vous partez de zéro, choisissez bien-sûr la version la plus récente ! Placez-vous dans le répertoire des sources du web service puis lancez les commandes git suivantes pour obtenir la liste des versions officielles du WS : ```bash git fetch && git fetch --tags && git tag ``` Si la version la plus récente est par exemple la `3.0.0`, utilisez les commandes suivantes pour "installer" cette version sur votre serveur : ```bash git checkout --force 3.0.0 && bash install.sh ``` ### Fichier "users.htpasswd" Ce fichier contient les utilisateurs/mot de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. S'il s'agit d'une simple mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. S'il s'agit de la première installation du WS, placez-vous dans le répertoire [`config`](config) des sources et lancez la commande suivante pour créer le fichier "users.htpasswd" contenant un utilisateur `sygal-app` dont le mot de passe vous sera demandé : ```bash htpasswd -c users.htpasswd sygal-app ``` Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante : ```bash pwgen 16 1 --symbols --secure ``` ### Configuration du WS S'il s'agit d'une mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. Reportez-vous aux "release notes" de la version choisie situées dans `doc/release-notes`. S'il s'agit de la première installation du WS, supprimez l'extension `.dist` des fichiers suivants situés dans le répertoire [`config/autoload`](config/autoload) : - [`local.php.dist`](config/autoload/local.php.dist) Dans la suite, vous allez adapter le contenu de ces fichiers à votre situation. #### Fichier `local.php` - Vérifiez la valeur de la clé `htpasswd` qui désigne le chemin du fichier "users.htpasswd" évoqué plus haut. - Renseignez les infos de connexion à la base de données (Apogée ou Physalis) : ```php 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'params' => [ 'host' => 'XXXXX', 'dbname' => 'XXXXX', 'port' => 'XXXXX', 'user' => 'XXXXX', 'password' => 'XXXXX', 'charset' => 'AL32UTF8', ], ], ], ], ``` ### Configuration PHP Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP `/etc/php/${PHP_VERSION}/fpm/conf.d/99-sygal.ini` : ``` display_errors = Off display_startup_errors = Off display_errors = Off ... error_reporting = 0 ... opcache.enable = 1 ... xdebug.mode = off ``` ## Script d'install des dépendances et d'init de l'application Lancez le script suivant : ```bash bash ./install.sh ``` Base de données --------------- Reportez-vous au [README consacré à la base de données](database/README.md). Programmation des tâches périodiques ------------------------------------ Vous devez CRONer l'exécution de la commande permettant de mettre à jour le contenu des tables de la bdd dans lesquelles puisent le WS. Normalement, vous avez lancé cette commande une première fois en suivant la doc d'install de la bdd. - Créez sur le serveur du web service le fichier de config CRON `/etc/cron.d/sygal-import-ws-cron` identique au fichier [cron/sygal-import-ws-cron](cron/sygal-import-ws-cron) fourni. - Adaptez si nécessaire son contenu : - `APP_DIR` : chemin vers le répertoire d'installation du web service. - `LOG_FILE` : chemin vers le fichier de log. - périodicité d'exécution du script, ex : "lun-ven à 6:25, 6:55, 7:25, ..., 18:25, 18:55". Réseau ------ Vous devez autoriser le serveur sur lequel est installé le WS à être interrogé par le serveur sur lequel est installé ESUP-SyGAL. Il est conseillé de restreindre cette autorisation à cette seule adresse IP d'origine. Test ---- Reportez-vous au [README.md](../README.md) pour tester l'appel du WS en ligne de commande depuis le serveur sur lequel est installé ESUP-SyGAL. dist/cron/sygal-import-ws-cron→doc/cron/sygal-import-ws-cron +1 −1 Changes for doc/cron/sygal-import-ws-cron: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ # Web service d'import pour SyGAL. # APP_DIR=/var/www/sygal-import-ws APP_DIR=/app LOG_FILE=/tmp/sygal-import-ws.log ##### Mise à jour des tables sources des services ##### Loading Loading
CHANGELOG.md +2 −0 Changes for CHANGELOG.md: 2 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -6,6 +6,8 @@ Journal des modifications - Passage à PHP 8.0. - Ajout d'une V3 à l'API ; les V1 et V2 demeurent. - Ajout de la colonne V_SYGAL_DOCTORANT_V2.code_apprenant_in_source contenant le numéro étudiant (API V3). - Dockerfile sans dépendance à l'image Unicaen ; traduit en Dockerfile.sh pour l'install manuelle. - Mise à jour de la doc d'installation. 2.3.0 ----- Loading
INSTALL.md +1 −186 Changes for INSTALL.md: 1 added line, 186 removed lines. Original line number Diff line number Diff line Installation du web service `sygal-import-ws` ============================================= Applicatif ---------- ### Première obtention des sources et installation du serveur *NB: la procédure proposée ici part d'un serveur *Debian* tout nu et couvre l'installation de tous les packages requis.* Si ce n'était pas le cas, merci de le signaler. En `root` sur votre serveur, pour obtenir les sources du WS, lancez l'une des commandes suivantes en fonction du site sur lequel vous lisez la présente page : ```bash # Si vous êtes sur git.unicaen.fr : git clone https://git.unicaen.fr/open-source/sygal-import-ws.git /app # Si vous êtes sur github.com : git clone https://github.com/EsupPortail/sygal-import-ws.git /app ``` *NB: merci de respecter dans un premier temps le choix de `/app` comme répertoire d'installation. Libre à vous une fois que tout fonctionne de changer d'emplacement et de modifier en conséquence les configs nécessaires.* ### Configuration du serveur Ensuite, placez-vous dans le répertoire des sources et jetez un oeil au script `Dockerfile.sh`. Ce script est en quelque sorte l'équivalent du `Dockerfile` du WS traduit en bash. (Vous y verrez que le dépôt git d'une image Docker Unicaen est cloné pour lancer son script `Dockerfile.sh` qui est lui aussi l'équivalent du `Dockerfile` de l'image traduit en bash.) Lancez le script `Dockerfile.sh` : ```bash cd /app bash Dockerfile.sh 7.4 ``` Ensuite, vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` : - ${APACHE_CONF_DIR}/ports.conf - ${APACHE_CONF_DIR}/sites-available/app.conf - ${APACHE_CONF_DIR}/sites-available/app-ssl.conf - ${PHP_CONF_DIR}/fpm/pool.d/app.conf - ${PHP_CONF_DIR}/fpm/conf.d/90-app.ini NB: Vérifiez dans le script `Dockerfile.sh` que vous venez de lancer mais normalement `APACHE_CONF_DIR=/etc/apache2` et `PHP_CONF_DIR=/etc/php/7.4`. ### Installation d'une version précise du WS Normalement, vous ne devez installer que les versions officielles du WS, c'est à dire les versions taguées, du genre `2.3.0` par exemple. Si vous partez de zéro, choisissez bien-sûr la version la plus récente ! Placez-vous dans le répertoire des sources du web service puis lancez les commandes git suivantes pour obtenir la liste des versions officielles du WS : ```bash git fetch && git fetch --tags && git tag ``` Si la version la plus récente est par exemple la `2.3.0`, utilisez les commandes suivantes pour "installer" cette version sur votre serveur : ```bash git checkout --force 2.3.0 && bash install.sh ``` ### Fichier "users.htpasswd" Ce fichier contient les utilisateurs/mot de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. S'il s'agit d'une simple mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. S'il s'agit de la première installation du WS, placez-vous dans le répertoire [`config`](config) des sources et lancez la commande suivante pour créer le fichier "users.htpasswd" contenant un utilisateur `sygal-app` dont le mot de passe vous sera demandé : ```bash htpasswd -c users.htpasswd sygal-app ``` Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante : ```bash pwgen 16 1 --symbols --secure ``` ### Configuration du WS S'il s'agit d'une mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. Reportez-vous aux "release notes" de la version choisie situées dans `doc/release-notes`. S'il s'agit de la première installation du WS, 2 fichiers situés dans le répertoire [`config/autoload`](config/autoload) doivent être complétés puis renommés : - **local.php.dist** : qui est notamment utilisé pour l'authentification. - clé `htpasswd` qui désigne le chemin du fichier "users.htpasswd" évoqué plus haut - **database.local.php.dist** : qui est utilisé pour la connection à la BDD. - clés `host`, `dbname`, `port`, `user`, `password` : les infos d'accès à la BDD. Une fois ces fichiers complétés, supprimez l'extension `.dist`, ex : ```bash cp -n local.php.dist local.php cp -n database.local.php.dist database.local.php ``` ### Configuration PHP pour le WS Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP `/etc/php/7.4/fpm/conf.d/90-app.ini` : display_errors = Off ... error_reporting = 0 ... opcache.enable = 1 ... xdebug.enable = 0 ### Interface d'admin Apigility Cette interface de modification du WS est réservée aux développeurs et est **INTERDITE EN PRODUCTION**. Assurez-vous de bien désactiver le mode développement : ```bash composer development-disable ``` Base de données --------------- ### Création des tables et vues sources Le WS puise dans des tables `SYGAL_*` mises à jour périodiquement à partir de vues `V_SYGAL_*`. Vous devez créer ces tables et vues dans la base de données de votre logiciel de scolarité (Apogée ou Physalis) ou autre part si c'est possible, à vous de voir. Le répertoire [`dist/SQL`](dist/SQL) contient ceci : - Un script `01-tables.sql` pour créer les tables qui contiendront les données retournées par le web service. - Un dossier `apogee` concernant les établissements ayant Apogée. - Un dossier `physalis` concernant les établissements ayant Physalis (Cocktail). Quelque soit votre logiciel de scolarité, utilisez le script `01-tables.sql` pour créer les tables `SYGAL_*`. Prenons maintenant l'exemple d'Apogée. Le répertoire `apogee` contient 2 scripts SQL : - `01-vues-apogee-communes.sql` : script de création des vues `V_SYGAL_*` communes à tous les établissements ayant ce logiciel de scolarité, ne nécessitant aucune personnalisation. - `02-vues-apogee-etab.sql` : script de création des vues `V_SYGAL_*` contenant des données propres à votre établissement en particulier, nécessitant donc une personnalisation de votre part. Prenez connaissance de ces scripts, personnalisez ceux qui le requierent puis lancez-vous/les pour créer les tables/vues nécesssaires. ### Mise à jour périodique des tables sources Le WS puise dans des tables `SYGAL_*` qui doivent être mises à jour périodiquement à partir des vues `V_SYGAL_*`. Il s'agit de CRONer l'exécution de la commande chargée de faire cette mise à jour. - Créez sur le serveur du web service le fichier de config CRON `/etc/cron.d/sygal-import-ws-cron` identique au fichier [dist/cron/sygal-import-ws-cron](dist/cron/sygal-import-ws-cron) fourni puis adaptez si nécessaire son contenu : - `APP_DIR=` : chemin vers le répertoire d'installation du web service. - `LOG_FILE=` : chemin vers le fichier de log. - `*/5` : périodicité d'exécution du script, initialisée à "toutes les 5 minutes". - Testez que CRON sera en mesure de lancer le script d'après le contenu du fichier de config. Exemple : ```bash APP_DIR=/var/www/sygal-import-ws /usr/bin/php ${APP_DIR}/public/index.php update-service-tables ``` - Vérifiez ensuite que le contenu de la table `SYGAL_INDIVIDU` (par exemple) a bien été mis à jour à l'instant grâce à la colonne `inserted_on`. Réseau ------ Vous devez autoriser le serveur sur lequel est installé le WS à être interrogé par le serveur sur lequel est installé ESUP-SyGAL. Il est conseillé de restreindre cette autorisation à cette seule adresse IP d'origine. Test ---- Reportez-vous au [README.md](README.md) pour tester l'appel du WS en ligne de commande depuis le serveur sur lequel est installé ESUP-SyGAL. Rendez-vous sur [INSTALL.md](doc/INSTALL.md).
README.md +13 −31 Changes for README.md: 13 added lines, 31 removed lines. Original line number Diff line number Diff line sygal-import-ws =============== Que fait *sygal-import-ws* ? ---------------------------- *sygal-import-ws* est une API REST qui retourne les données présentes dans des tables `SyGAL_*` *sygal-import-ws* est une API REST qui retourne les données présentes dans des tables `SYGAL_*` d'Apogée ou de Physalis via des requêtes GET. Docker ------ - Obtention de l'image de base Unicaen (construite) à jour Installation ------------ ```bash PHP_VERSION=8.0 \ docker pull registre.unicaen.fr:5000/unicaen-dev-php${PHP_VERSION}-apache ``` Cf. [`INSTALL.md`](INSTALL.md). - Construction de l'image du web service Lancement du web service *pour le dévelopement* ----------------------------------------------- - Construction de l'image ```bash PHP_VERSION=8.0 \ Loading @@ -30,29 +27,13 @@ docker build \ . ``` - Lancement du web service - Démarrage du container : ```bash docker-compose up sygal-import-ws ``` Installation ------------ Cf. [`INSTALL.md`](INSTALL.md). Lancement du web service *pour le dévelopement* ----------------------------------------------- Se placer à la racine des sources du ws pour lancer la commande suivante : ```bash docker-compose up --build sygal-import-ws ``` Vérifier que le container `sygal-import-ws-container-php8.0` figure bien dans la liste des containers - Vérifier que le container `sygal-import-ws-container-php8.0` figure bien dans la liste des containers lancés listés par la commande suivante (cf. colonne `NAMES`) : ```bash Loading Loading @@ -83,7 +64,8 @@ Chaque vue en base de données peut être interrogée via un service dédié : - `/titre-acces` - `/variable` Il y a aussi un service `/version` () permettant de connaître le numéro de version du web service (ex : '2.3.0'). Autres services : - `/version` : permet de connaître le numéro de version du web service (ex : '2.3.0') Versionning de l'API Loading
doc/INSTALL.md 0 → 100644 +181 −0 Changes for doc/INSTALL.md: 181 added lines, 0 removed lines. Original line number Diff line number Diff line Installation du web service `sygal-import-ws` ============================================= ## Installation du serveur Debian Bullseye Concernant l'installation du serveur d'application, n'ayant pas à Caen les compétences en déploiement Docker (autres que pour le développement), nous documenterons une installation manuelle sur un serveur *entièrement dédié à l'application*. Si vous voulez déployer l'application avec Docker, faites-le à partir du `Dockerfile` présent et n'hésitez pas à contribuer en améliorant cette doc d'install ! **NB :** La procédure proposée ici part d'un serveur *Debian Bullseye* tout nu. Elle couvre normalement l'installation de tous les packages requis, mais si ce n'était pas le cas merci de contribuer en le signalant. ### Case départ : obtention des sources de l'application En `root` sur votre serveur, obtenez les sources en lançant l'une des commandes suivantes en fonction du site sur lequel vous lisez la présente doc : ```bash # Si vous êtes sur git.unicaen.fr : git clone https://git.unicaen.fr/open-source/sygal-import-ws.git /app # Si vous êtes sur github.com : git clone https://github.com/EsupPortail/sygal-import-ws.git /app ``` *NB : merci de respecter dans un premier temps le choix de `/app` comme répertoire d'installation. Si vous êtes à l'aise, libre à vous une fois que tout fonctionne de changer d'emplacement et de modifier en conséquence les configs nécessaires sur le serveur.* ### Configuration du serveur - Vous trouverez dans le répertoire des sources récupérées à l'instant un script `Dockerfile.sh`, sorte de version sh du Dockerfile, contenant de quoi mettre à niveau et/ou installer les packages nécessaires. - Plutôt que de le lancer d'un seul bloc, ouvrez-le dans un autre terminal pour le visualiser, ce qui vous permettra de copier-coller-lancer les commandes qu'il contient par petits groupes. - Ensuite, vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` : - ${APACHE_CONF_DIR}/ports.conf - ${APACHE_CONF_DIR}/sites-available/app.conf - ${APACHE_CONF_DIR}/sites-available/app-ssl.conf - ${PHP_CONF_DIR}/fpm/pool.d/99-sygal.conf - ${PHP_CONF_DIR}/fpm/conf.d/99-sygal.ini NB: Vérifiez dans le script `Dockerfile.sh` que vous venez de lancer mais normalement `APACHE_CONF_DIR=/etc/apache2` et `PHP_CONF_DIR=/etc/php/${PHP_VERSION}`. ### Installation d'une version précise du WS Normalement, vous ne devez installer que les versions officielles du WS, c'est à dire les versions taguées, du genre `3.0.0` par exemple. Si vous partez de zéro, choisissez bien-sûr la version la plus récente ! Placez-vous dans le répertoire des sources du web service puis lancez les commandes git suivantes pour obtenir la liste des versions officielles du WS : ```bash git fetch && git fetch --tags && git tag ``` Si la version la plus récente est par exemple la `3.0.0`, utilisez les commandes suivantes pour "installer" cette version sur votre serveur : ```bash git checkout --force 3.0.0 && bash install.sh ``` ### Fichier "users.htpasswd" Ce fichier contient les utilisateurs/mot de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. S'il s'agit d'une simple mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. S'il s'agit de la première installation du WS, placez-vous dans le répertoire [`config`](config) des sources et lancez la commande suivante pour créer le fichier "users.htpasswd" contenant un utilisateur `sygal-app` dont le mot de passe vous sera demandé : ```bash htpasswd -c users.htpasswd sygal-app ``` Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante : ```bash pwgen 16 1 --symbols --secure ``` ### Configuration du WS S'il s'agit d'une mise à jour du WS, vous avez déjà fait la manip, inutile de lire ce paragraphe. Reportez-vous aux "release notes" de la version choisie situées dans `doc/release-notes`. S'il s'agit de la première installation du WS, supprimez l'extension `.dist` des fichiers suivants situés dans le répertoire [`config/autoload`](config/autoload) : - [`local.php.dist`](config/autoload/local.php.dist) Dans la suite, vous allez adapter le contenu de ces fichiers à votre situation. #### Fichier `local.php` - Vérifiez la valeur de la clé `htpasswd` qui désigne le chemin du fichier "users.htpasswd" évoqué plus haut. - Renseignez les infos de connexion à la base de données (Apogée ou Physalis) : ```php 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'params' => [ 'host' => 'XXXXX', 'dbname' => 'XXXXX', 'port' => 'XXXXX', 'user' => 'XXXXX', 'password' => 'XXXXX', 'charset' => 'AL32UTF8', ], ], ], ], ``` ### Configuration PHP Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP `/etc/php/${PHP_VERSION}/fpm/conf.d/99-sygal.ini` : ``` display_errors = Off display_startup_errors = Off display_errors = Off ... error_reporting = 0 ... opcache.enable = 1 ... xdebug.mode = off ``` ## Script d'install des dépendances et d'init de l'application Lancez le script suivant : ```bash bash ./install.sh ``` Base de données --------------- Reportez-vous au [README consacré à la base de données](database/README.md). Programmation des tâches périodiques ------------------------------------ Vous devez CRONer l'exécution de la commande permettant de mettre à jour le contenu des tables de la bdd dans lesquelles puisent le WS. Normalement, vous avez lancé cette commande une première fois en suivant la doc d'install de la bdd. - Créez sur le serveur du web service le fichier de config CRON `/etc/cron.d/sygal-import-ws-cron` identique au fichier [cron/sygal-import-ws-cron](cron/sygal-import-ws-cron) fourni. - Adaptez si nécessaire son contenu : - `APP_DIR` : chemin vers le répertoire d'installation du web service. - `LOG_FILE` : chemin vers le fichier de log. - périodicité d'exécution du script, ex : "lun-ven à 6:25, 6:55, 7:25, ..., 18:25, 18:55". Réseau ------ Vous devez autoriser le serveur sur lequel est installé le WS à être interrogé par le serveur sur lequel est installé ESUP-SyGAL. Il est conseillé de restreindre cette autorisation à cette seule adresse IP d'origine. Test ---- Reportez-vous au [README.md](../README.md) pour tester l'appel du WS en ligne de commande depuis le serveur sur lequel est installé ESUP-SyGAL.
dist/cron/sygal-import-ws-cron→doc/cron/sygal-import-ws-cron +1 −1 Changes for doc/cron/sygal-import-ws-cron: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ # Web service d'import pour SyGAL. # APP_DIR=/var/www/sygal-import-ws APP_DIR=/app LOG_FILE=/tmp/sygal-import-ws.log ##### Mise à jour des tables sources des services ##### Loading