Loading config/autoload/local.php.dist +7 −28 Original line number Diff line number Diff line <?php return [ /** * Eventuelles instructions SQL à exécuter avant la mise à jour d'une table de service. Loading @@ -6,36 +7,14 @@ return [ 'services_pre_sql' => [ //'individu' => "begin DBMS_MVIEW.REFRESH('SYGAL_MV_EMAIL', 'C'); end;", ], /** * Connexion à la base de données. * Logging possible des requêtes reçues et des temps de traitements (SQL, génération HAL). */ 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'logging' => [ 'enabled' => false, 'params' => [ 'host' => 'XXXXX', 'dbname' => 'XXXXX', 'port' => 'XXXXX', 'user' => 'XXXXX', 'password' => 'XXXXX', 'charset' => 'AL32UTF8', ], ], ], ], /** * Config du mode d'authentification. */ 'zf-mvc-auth' => [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'options' => [ 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], ], 'file_path' => '/tmp/api-logging.log', ], ], ]; config/autoload/secret.local.php.dist 0 → 100644 +36 −0 Original line number Diff line number Diff line <?php return [ /** * Connexion à la base de données. */ 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'params' => [ 'host' => 'XXXXX', 'dbname' => 'XXXXX', 'port' => 'XXXXX', 'user' => 'XXXXX', 'password' => 'XXXXX', 'charset' => 'AL32UTF8', ], ], ], ], /** * Config du mode d'authentification. */ 'zf-mvc-auth' => [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'options' => [ 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], ], ], ], ]; config/development.config.php.dist +0 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,6 @@ return [ 'modules' => [ ], 'module_listener_options' => [ 'config_glob_paths' => [ Loading doc/INSTALL.md +114 −55 Original line number Diff line number Diff line Loading @@ -2,7 +2,15 @@ Installation du web service `sygal-import-ws` ============================================= ## Installation du serveur Debian Bullseye Base de données --------------- Reportez-vous au [README consacré à la base de données](database/README.md). Installation du serveur d'application ------------------------------------- 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 Loading Loading @@ -46,29 +54,71 @@ git checkout --force 3.0.0 && bash install.sh ``` ### Configuration du serveur ### Script `Dockerfile.sh` - Vous trouverez dans le répertoire des sources d'ESUP-SyGAL un script `Dockerfile.sh`, sorte de version sh partielle du Dockerfile, contenant de quoi mettre à niveau et/ou installer les packages nécessaires. - Vous ne devez pas le lancer d'un seul bloc, ouvrez-le dans un autre terminal pour l'avoir sous la main. - 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. - Lisez et appliquez les pré-requis mentionnés dans les commentaires en entête du script. - 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. - Copiez-collez-lancez 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` : Configuration du serveur ------------------------ ### Apache - Vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` (vérifiez dans le script mais normalement `APACHE_CONF_DIR=/etc/apache2`) : - ${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}`. ### PHP - Vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` (vérifiez dans le script mais normalement `PHP_CONF_DIR=/etc/php/${PHP_VERSION}`) : - ${PHP_CONF_DIR}/fpm/pool.d/99-sygal-import-ws.conf - ${PHP_CONF_DIR}/fpm/conf.d/99-sygal-import-ws.ini ### Fichier `users.htpasswd` - Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config `/etc/php/${PHP_VERSION}/fpm/conf.d/99-sygal-import-ws.ini` : ``` display_errors = Off display_startup_errors = Off display_errors = Off ... error_reporting = 0 ... opcache.enable = 1 ... xdebug.mode = off ``` - Ajoutez ceci à la fin du fichier de config `/etc/php/${PHP_VERSION}/fpm/pool.d/www.conf` et adaptez les valeurs selon que vous souhaitez activer les logs PHP-FPM ou non : ```conf catch_workers_output = yes php_flag[display_errors] = on php_admin_value[error_log] = /var/log/php-fpm.log php_admin_flag[log_errors] = on ``` Configuration du web service ---------------------------- Ce fichier contient les comptes utilisateurs / mots de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. ### Fichier `config/users.htpasswd` Ce fichier doit contenir les comptes utilisateurs / mots de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. 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 Loading @@ -82,17 +132,26 @@ Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante : pwgen 16 1 --symbols --secure ``` ### Fichier `config/autoload/{dev|test|prod}.local.php` ### Configuration 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. - Supprimez l'extension `.dist` du fichier [`config/autoload/local.php.dist`](../config/autoload/local.php.dist), et préfixez-le par `prod.`, `test.` ou `dev.` pour bien signifier l'environnement de fonctionnement (*n'utilisez pas le préfixe `development.` qui est réservé*), exemple : ```bash cp local.php.dist prod.local.php ``` #### Fichier `local.php` - Activez si besoin les logs des requêtes HTTP reçues et des temps de traitements (SQL, génération HAL) : ```php 'logging' => [ 'enabled' => false, // mettre à `true` pour activer les logs 'params' => [ 'file_path' => '/tmp/api-logging.log', ], ], ``` - Vérifiez la valeur de la clé `htpasswd` qui désigne le chemin du fichier "users.htpasswd" évoqué plus haut. ### Fichier `config/autoload/{dev|test|prod}.secret.local.php` - Renseignez les infos de connexion à la base de données (Apogée ou Physalis) : ```php Loading @@ -113,38 +172,34 @@ Dans la suite, vous allez adapter le contenu de ces fichiers à votre situation. ], ``` ### 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 - Vérifiez la valeur de la clé `htpasswd` qui désigne le chemin du fichier `config/users.htpasswd` évoqué plus haut : ```php 'zf-mvc-auth' => [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'options' => [ 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], ], ], ], ``` ## Script d'install des dépendances et d'init de l'application Lancez le script suivant : Script `install.sh` ------------------- Le script `install.sh` situé à la racine des sources du web service doit être lancé à chaque fois qu'une nouvelle version du ws est téléchargée/installée : ```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 ------------------------------------ Loading @@ -152,13 +207,16 @@ 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. - Créez sur le serveur d'application le fichier de config CRON `/etc/cron.d/sygal-import-ws` identique au fichier [doc/cron/sygal-import-ws](cron/sygal-import-ws) fourni. - Adaptez obligatoirement les éléments suivants : - variable `APP_DIR` : chemin vers le répertoire d'installation du web service. - Adaptez éventuellement : - variable `LOG_FILE` : chemin vers le fichier de log. - périodicité d'exécution du script. - 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 Loading @@ -169,6 +227,7 @@ ESUP-SyGAL. Il est conseillé de restreindre cette autorisation à cette seule adresse IP d'origine. Test ---- Loading doc/cron/sygal-import-ws-cron→doc/cron/sygal-import-ws +3 −3 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ # Web service d'import pour SyGAL. # APP_DIR=/app HOST_APP_DIR=/var/www/sygal-import-ws LOG_FILE=/tmp/sygal-import-ws.log ##### Mise à jour des tables sources des services ##### 25,55 6-18 * * 1-5 root /usr/bin/php ${APP_DIR}/public/index.php update-service-tables 1> ${LOG_FILE} 2>&1 ## (lun-ven à 6:25, 6:55, 7:25, ..., 18:25, 18:55) */10 6-18 * * 1-5 root /usr/bin/php ${HOST_APP_DIR}/public/index.php update-service-tables --verbose 1> ${LOG_FILE} 2>&1 ## (toutes les 10 minutes, de 6:00 à 18:50, du lundi au vendredi) Loading
config/autoload/local.php.dist +7 −28 Original line number Diff line number Diff line <?php return [ /** * Eventuelles instructions SQL à exécuter avant la mise à jour d'une table de service. Loading @@ -6,36 +7,14 @@ return [ 'services_pre_sql' => [ //'individu' => "begin DBMS_MVIEW.REFRESH('SYGAL_MV_EMAIL', 'C'); end;", ], /** * Connexion à la base de données. * Logging possible des requêtes reçues et des temps de traitements (SQL, génération HAL). */ 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'logging' => [ 'enabled' => false, 'params' => [ 'host' => 'XXXXX', 'dbname' => 'XXXXX', 'port' => 'XXXXX', 'user' => 'XXXXX', 'password' => 'XXXXX', 'charset' => 'AL32UTF8', ], ], ], ], /** * Config du mode d'authentification. */ 'zf-mvc-auth' => [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'options' => [ 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], ], 'file_path' => '/tmp/api-logging.log', ], ], ];
config/autoload/secret.local.php.dist 0 → 100644 +36 −0 Original line number Diff line number Diff line <?php return [ /** * Connexion à la base de données. */ 'doctrine' => [ 'connection' => [ 'orm_default' => [ 'driverClass' => 'Doctrine\DBAL\Driver\OCI8\Driver', 'params' => [ 'host' => 'XXXXX', 'dbname' => 'XXXXX', 'port' => 'XXXXX', 'user' => 'XXXXX', 'password' => 'XXXXX', 'charset' => 'AL32UTF8', ], ], ], ], /** * Config du mode d'authentification. */ 'zf-mvc-auth' => [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'options' => [ 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], ], ], ], ];
config/development.config.php.dist +0 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,6 @@ return [ 'modules' => [ ], 'module_listener_options' => [ 'config_glob_paths' => [ Loading
doc/INSTALL.md +114 −55 Original line number Diff line number Diff line Loading @@ -2,7 +2,15 @@ Installation du web service `sygal-import-ws` ============================================= ## Installation du serveur Debian Bullseye Base de données --------------- Reportez-vous au [README consacré à la base de données](database/README.md). Installation du serveur d'application ------------------------------------- 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 Loading Loading @@ -46,29 +54,71 @@ git checkout --force 3.0.0 && bash install.sh ``` ### Configuration du serveur ### Script `Dockerfile.sh` - Vous trouverez dans le répertoire des sources d'ESUP-SyGAL un script `Dockerfile.sh`, sorte de version sh partielle du Dockerfile, contenant de quoi mettre à niveau et/ou installer les packages nécessaires. - Vous ne devez pas le lancer d'un seul bloc, ouvrez-le dans un autre terminal pour l'avoir sous la main. - 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. - Lisez et appliquez les pré-requis mentionnés dans les commentaires en entête du script. - 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. - Copiez-collez-lancez 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` : Configuration du serveur ------------------------ ### Apache - Vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` (vérifiez dans le script mais normalement `APACHE_CONF_DIR=/etc/apache2`) : - ${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}`. ### PHP - Vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants, créés par le script `Dockerfile.sh` (vérifiez dans le script mais normalement `PHP_CONF_DIR=/etc/php/${PHP_VERSION}`) : - ${PHP_CONF_DIR}/fpm/pool.d/99-sygal-import-ws.conf - ${PHP_CONF_DIR}/fpm/conf.d/99-sygal-import-ws.ini ### Fichier `users.htpasswd` - Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config `/etc/php/${PHP_VERSION}/fpm/conf.d/99-sygal-import-ws.ini` : ``` display_errors = Off display_startup_errors = Off display_errors = Off ... error_reporting = 0 ... opcache.enable = 1 ... xdebug.mode = off ``` - Ajoutez ceci à la fin du fichier de config `/etc/php/${PHP_VERSION}/fpm/pool.d/www.conf` et adaptez les valeurs selon que vous souhaitez activer les logs PHP-FPM ou non : ```conf catch_workers_output = yes php_flag[display_errors] = on php_admin_value[error_log] = /var/log/php-fpm.log php_admin_flag[log_errors] = on ``` Configuration du web service ---------------------------- Ce fichier contient les comptes utilisateurs / mots de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. ### Fichier `config/users.htpasswd` Ce fichier doit contenir les comptes utilisateurs / mots de passe autorisés à interroger le WS au regard de l'authentification HTTP Basic. 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 Loading @@ -82,17 +132,26 @@ Si vous manquez d'idée pour le mot de passe, utilsez la commande suivante : pwgen 16 1 --symbols --secure ``` ### Fichier `config/autoload/{dev|test|prod}.local.php` ### Configuration 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. - Supprimez l'extension `.dist` du fichier [`config/autoload/local.php.dist`](../config/autoload/local.php.dist), et préfixez-le par `prod.`, `test.` ou `dev.` pour bien signifier l'environnement de fonctionnement (*n'utilisez pas le préfixe `development.` qui est réservé*), exemple : ```bash cp local.php.dist prod.local.php ``` #### Fichier `local.php` - Activez si besoin les logs des requêtes HTTP reçues et des temps de traitements (SQL, génération HAL) : ```php 'logging' => [ 'enabled' => false, // mettre à `true` pour activer les logs 'params' => [ 'file_path' => '/tmp/api-logging.log', ], ], ``` - Vérifiez la valeur de la clé `htpasswd` qui désigne le chemin du fichier "users.htpasswd" évoqué plus haut. ### Fichier `config/autoload/{dev|test|prod}.secret.local.php` - Renseignez les infos de connexion à la base de données (Apogée ou Physalis) : ```php Loading @@ -113,38 +172,34 @@ Dans la suite, vous allez adapter le contenu de ces fichiers à votre situation. ], ``` ### 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 - Vérifiez la valeur de la clé `htpasswd` qui désigne le chemin du fichier `config/users.htpasswd` évoqué plus haut : ```php 'zf-mvc-auth' => [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'options' => [ 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], ], ], ], ``` ## Script d'install des dépendances et d'init de l'application Lancez le script suivant : Script `install.sh` ------------------- Le script `install.sh` situé à la racine des sources du web service doit être lancé à chaque fois qu'une nouvelle version du ws est téléchargée/installée : ```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 ------------------------------------ Loading @@ -152,13 +207,16 @@ 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. - Créez sur le serveur d'application le fichier de config CRON `/etc/cron.d/sygal-import-ws` identique au fichier [doc/cron/sygal-import-ws](cron/sygal-import-ws) fourni. - Adaptez obligatoirement les éléments suivants : - variable `APP_DIR` : chemin vers le répertoire d'installation du web service. - Adaptez éventuellement : - variable `LOG_FILE` : chemin vers le fichier de log. - périodicité d'exécution du script. - 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 Loading @@ -169,6 +227,7 @@ ESUP-SyGAL. Il est conseillé de restreindre cette autorisation à cette seule adresse IP d'origine. Test ---- Loading
doc/cron/sygal-import-ws-cron→doc/cron/sygal-import-ws +3 −3 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ # Web service d'import pour SyGAL. # APP_DIR=/app HOST_APP_DIR=/var/www/sygal-import-ws LOG_FILE=/tmp/sygal-import-ws.log ##### Mise à jour des tables sources des services ##### 25,55 6-18 * * 1-5 root /usr/bin/php ${APP_DIR}/public/index.php update-service-tables 1> ${LOG_FILE} 2>&1 ## (lun-ven à 6:25, 6:55, 7:25, ..., 18:25, 18:55) */10 6-18 * * 1-5 root /usr/bin/php ${HOST_APP_DIR}/public/index.php update-service-tables --verbose 1> ${LOG_FILE} 2>&1 ## (toutes les 10 minutes, de 6:00 à 18:50, du lundi au vendredi)