Loading Dockerfile +14 −7 Original line number Diff line number Diff line ########################################################################################### # # Image pour le dev. # ########################################################################################### FROM unicaen-dev-php7.0-apache ARG PHP_VERSION FROM unicaen-dev-php${PHP_VERSION}-apache LABEL maintainer="Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>" Loading @@ -10,10 +17,10 @@ RUN ln -sf /dev/stderr /var/log/apache2/error.log # Configuration Apache et FPM ADD docker/apache-ports.conf ${APACHE_CONF_DIR}/ports.conf ADD docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws.conf ADD docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws-ssl.conf ADD docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/sygal-import-ws.conf ADD docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/ ADD docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/app.conf ADD docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/app-ssl.conf ADD docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/app.conf ADD docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/90-app.ini RUN a2ensite sygal-import-ws sygal-import-ws-ssl && \ service php7.0-fpm reload RUN a2ensite app app-ssl && \ service php${PHP_VERSION}-fpm reload Dockerfile.sh +28 −11 Original line number Diff line number Diff line #!/usr/bin/env bash # # Script d'install d'un serveur, inspiré du Dockerfile. # Script d'install d'un serveur, traduction du Dockerfile. # DIR=$(cd `dirname $0` && pwd) usage() { cat << EOF Script d'install d'un serveur, traduction du Dockerfile. Usage: $0 <version de PHP> EOF exit 0; } [[ -z "$1" ]] && usage ################################################################################################################ PHP_VERSION="$1" APP_DIR=$(cd `dirname $0` && pwd) set -e Loading @@ -18,21 +31,25 @@ apt-get install -y \ export UNICAEN_IMAGE_TMP_DIR=/tmp/docker-unicaen-image git clone https://git.unicaen.fr/open-source/docker/unicaen-image.git ${UNICAEN_IMAGE_TMP_DIR} cd ${UNICAEN_IMAGE_TMP_DIR} source Dockerfile.sh . Dockerfile.sh ${PHP_VERSION} cd ${DIR} cd ${APP_DIR} # NB: Variables d'env positionnées par ${UNICAEN_IMAGE_TMP_DIR}/Dockerfile.sh # APACHE_CONF_DIR=/etc/apache2 \ # PHP_CONF_DIR=/etc/php/7.0 # PHP_CONF_DIR=/etc/php/$1 # Configuration Apache et FPM cp docker/apache-ports.conf ${APACHE_CONF_DIR}/ports.conf cp docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws.conf cp docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws-ssl.conf cp docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/sygal-import-ws.conf cp docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/ cp docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/app.conf cp docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/app-ssl.conf cp docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/app.conf cp docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/90-app.ini sed -i -re 's/SetEnv APPLICATION_ENV "(development|test)"/SetEnv APPLICATION_ENV "production"/' \ ${APACHE_CONF_DIR}/sites-available/app-ssl.conf a2ensite sygal-import-ws sygal-import-ws-ssl && \ service php7.0-fpm reload a2ensite app app-ssl && \ service apache2 reload && \ service php${PHP_VERSION}-fpm reload INSTALL.md +60 −47 Original line number Diff line number Diff line # Installation du web service `sygal-import-ws` Installation du web service `sygal-import-ws` ============================================= ## Applicatif Applicatif ---------- ### Première obtention des sources et installation du serveur Sur un serveur Debian Stretch, lancez les commandes suivantes pour obtenir les sources du WS : *NB: la procédure proposée ici part d'un serveur *Debian Stretch* 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 git clone https://git.unicaen.fr/open-source/sygal-import-WS.git /var/www/sygal-import-WS # 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 /var/www/sygal-import-WS source Dockerfile.sh cd /app bash Dockerfile.sh 7.0 ``` 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/sygal-import-ws.conf - ${APACHE_CONF_DIR}/sites-available/sygal-import-ws-ssl.conf - ${PHP_CONF_DIR}/fpm/pool.d/sygal-import-ws.conf - ${PHP_CONF_DIR}/fpm/conf.d/ - ${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.0`. Loading Loading @@ -83,41 +99,24 @@ doivent être complétés puis renommés : - **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, changez leur extension `.php.dist` en `.php`. 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 Créez/corrigez le fichier de config PHP `/etc/php/7.0/fpm/conf.d/99-sygal-import-WS.ini` comme suit : Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP `/etc/php/7.0/fpm/conf.d/90-app.ini` : date.timezone = Europe/Paris short_open_tag = Off expose_php = Off #display_startup_errors = On #error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE display_errors = Off # NB: ne peut-être supérieur au memory_limit du php.ini memory_limit = 256M ;opcache.error_log=/var/log/php_opcache_error.log ... error_reporting = 0 ... opcache.enable = 1 opcache.memory_consumption = 256 opcache.interned_strings_buffer = 8 opcache.max_wasted_percentage = 5 opcache.max_accelerated_files = 16000 ; http://php.net/manual/en/opcache.configuration.php#ini.opcache.revalidate-freq ; defaults to zend opcache checking every 180 seconds for PHP file changes ; set to zero to check every second if you are doing alot of frequent ; php file edits/developer work ; opcache.revalidate_freq=0 opcache.revalidate_freq = 180 opcache.fast_shutdown = 0 opcache.enable_cli = 0 opcache.save_comments = 1 opcache.enable_file_override = 1 opcache.validate_timestamps = 1 opcache.huge_code_pages = 0 ... xdebug.enable = 0 ### Interface d'admin Apigility Loading @@ -127,16 +126,13 @@ Assurez-vous de bien désactiver le mode développement : composer development-disable ``` Pour passer en mode développement et ouvrir l'accès à cette interface de modification du WS : ```bash composer development-enable ``` ## Base de données Base de données --------------- Le WS interroge des vues que vous devez créer dans la base de données de votre logiciel de scolarité (Apogée, Physalis), ou autre part si c'est possible, à vous de voir. Le WS interroge des vues que vous devez créer dans la base de données de votre logiciel de scolarité (Apogée, Physalis), ou autre part si c'est possible, à vous de voir. En fonction du logiciel de scolarité que votre établissement utilise, intéressez-vous dans le répertoire [`data/sql`](data/sql) à l'un des répertoires suivants : Loading @@ -147,3 +143,20 @@ Chacun des répertoires contient : - Un script pour créer les vues communes à tous les établissements ayant le logiciel de scolarité en question. - Un script pour créer les vues propres à un établissement en particulier. Si votre établissement ne figure pas dans la liste, il faudra écrire les vues adaptées à votre contexte. Réseau ------ Vous devez autoriser le serveur sur lequel est installé le WS à être interrogé par le serveur sur lequel est installé 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é SyGAL. config/autoload/local.php.dist +0 −5 Original line number Diff line number Diff line Loading @@ -19,12 +19,7 @@ return [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'adapter' => \ZF\MvcAuth\Authentication\HttpAdapter::class, 'options' => [ 'accept_schemes' => [ 0 => 'basic', ], 'realm' => 'api', 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], Loading data/sql/apogee/01-vues-apogee-communes.sql +260 −370 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
Dockerfile +14 −7 Original line number Diff line number Diff line ########################################################################################### # # Image pour le dev. # ########################################################################################### FROM unicaen-dev-php7.0-apache ARG PHP_VERSION FROM unicaen-dev-php${PHP_VERSION}-apache LABEL maintainer="Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>" Loading @@ -10,10 +17,10 @@ RUN ln -sf /dev/stderr /var/log/apache2/error.log # Configuration Apache et FPM ADD docker/apache-ports.conf ${APACHE_CONF_DIR}/ports.conf ADD docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws.conf ADD docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws-ssl.conf ADD docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/sygal-import-ws.conf ADD docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/ ADD docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/app.conf ADD docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/app-ssl.conf ADD docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/app.conf ADD docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/90-app.ini RUN a2ensite sygal-import-ws sygal-import-ws-ssl && \ service php7.0-fpm reload RUN a2ensite app app-ssl && \ service php${PHP_VERSION}-fpm reload
Dockerfile.sh +28 −11 Original line number Diff line number Diff line #!/usr/bin/env bash # # Script d'install d'un serveur, inspiré du Dockerfile. # Script d'install d'un serveur, traduction du Dockerfile. # DIR=$(cd `dirname $0` && pwd) usage() { cat << EOF Script d'install d'un serveur, traduction du Dockerfile. Usage: $0 <version de PHP> EOF exit 0; } [[ -z "$1" ]] && usage ################################################################################################################ PHP_VERSION="$1" APP_DIR=$(cd `dirname $0` && pwd) set -e Loading @@ -18,21 +31,25 @@ apt-get install -y \ export UNICAEN_IMAGE_TMP_DIR=/tmp/docker-unicaen-image git clone https://git.unicaen.fr/open-source/docker/unicaen-image.git ${UNICAEN_IMAGE_TMP_DIR} cd ${UNICAEN_IMAGE_TMP_DIR} source Dockerfile.sh . Dockerfile.sh ${PHP_VERSION} cd ${DIR} cd ${APP_DIR} # NB: Variables d'env positionnées par ${UNICAEN_IMAGE_TMP_DIR}/Dockerfile.sh # APACHE_CONF_DIR=/etc/apache2 \ # PHP_CONF_DIR=/etc/php/7.0 # PHP_CONF_DIR=/etc/php/$1 # Configuration Apache et FPM cp docker/apache-ports.conf ${APACHE_CONF_DIR}/ports.conf cp docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws.conf cp docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/sygal-import-ws-ssl.conf cp docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/sygal-import-ws.conf cp docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/ cp docker/apache-site.conf ${APACHE_CONF_DIR}/sites-available/app.conf cp docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/app-ssl.conf cp docker/fpm/pool.d/app.conf ${PHP_CONF_DIR}/fpm/pool.d/app.conf cp docker/fpm/conf.d/app.ini ${PHP_CONF_DIR}/fpm/conf.d/90-app.ini sed -i -re 's/SetEnv APPLICATION_ENV "(development|test)"/SetEnv APPLICATION_ENV "production"/' \ ${APACHE_CONF_DIR}/sites-available/app-ssl.conf a2ensite sygal-import-ws sygal-import-ws-ssl && \ service php7.0-fpm reload a2ensite app app-ssl && \ service apache2 reload && \ service php${PHP_VERSION}-fpm reload
INSTALL.md +60 −47 Original line number Diff line number Diff line # Installation du web service `sygal-import-ws` Installation du web service `sygal-import-ws` ============================================= ## Applicatif Applicatif ---------- ### Première obtention des sources et installation du serveur Sur un serveur Debian Stretch, lancez les commandes suivantes pour obtenir les sources du WS : *NB: la procédure proposée ici part d'un serveur *Debian Stretch* 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 git clone https://git.unicaen.fr/open-source/sygal-import-WS.git /var/www/sygal-import-WS # 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 /var/www/sygal-import-WS source Dockerfile.sh cd /app bash Dockerfile.sh 7.0 ``` 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/sygal-import-ws.conf - ${APACHE_CONF_DIR}/sites-available/sygal-import-ws-ssl.conf - ${PHP_CONF_DIR}/fpm/pool.d/sygal-import-ws.conf - ${PHP_CONF_DIR}/fpm/conf.d/ - ${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.0`. Loading Loading @@ -83,41 +99,24 @@ doivent être complétés puis renommés : - **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, changez leur extension `.php.dist` en `.php`. 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 Créez/corrigez le fichier de config PHP `/etc/php/7.0/fpm/conf.d/99-sygal-import-WS.ini` comme suit : Si vous êtes sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP `/etc/php/7.0/fpm/conf.d/90-app.ini` : date.timezone = Europe/Paris short_open_tag = Off expose_php = Off #display_startup_errors = On #error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE display_errors = Off # NB: ne peut-être supérieur au memory_limit du php.ini memory_limit = 256M ;opcache.error_log=/var/log/php_opcache_error.log ... error_reporting = 0 ... opcache.enable = 1 opcache.memory_consumption = 256 opcache.interned_strings_buffer = 8 opcache.max_wasted_percentage = 5 opcache.max_accelerated_files = 16000 ; http://php.net/manual/en/opcache.configuration.php#ini.opcache.revalidate-freq ; defaults to zend opcache checking every 180 seconds for PHP file changes ; set to zero to check every second if you are doing alot of frequent ; php file edits/developer work ; opcache.revalidate_freq=0 opcache.revalidate_freq = 180 opcache.fast_shutdown = 0 opcache.enable_cli = 0 opcache.save_comments = 1 opcache.enable_file_override = 1 opcache.validate_timestamps = 1 opcache.huge_code_pages = 0 ... xdebug.enable = 0 ### Interface d'admin Apigility Loading @@ -127,16 +126,13 @@ Assurez-vous de bien désactiver le mode développement : composer development-disable ``` Pour passer en mode développement et ouvrir l'accès à cette interface de modification du WS : ```bash composer development-enable ``` ## Base de données Base de données --------------- Le WS interroge des vues que vous devez créer dans la base de données de votre logiciel de scolarité (Apogée, Physalis), ou autre part si c'est possible, à vous de voir. Le WS interroge des vues que vous devez créer dans la base de données de votre logiciel de scolarité (Apogée, Physalis), ou autre part si c'est possible, à vous de voir. En fonction du logiciel de scolarité que votre établissement utilise, intéressez-vous dans le répertoire [`data/sql`](data/sql) à l'un des répertoires suivants : Loading @@ -147,3 +143,20 @@ Chacun des répertoires contient : - Un script pour créer les vues communes à tous les établissements ayant le logiciel de scolarité en question. - Un script pour créer les vues propres à un établissement en particulier. Si votre établissement ne figure pas dans la liste, il faudra écrire les vues adaptées à votre contexte. Réseau ------ Vous devez autoriser le serveur sur lequel est installé le WS à être interrogé par le serveur sur lequel est installé 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é SyGAL.
config/autoload/local.php.dist +0 −5 Original line number Diff line number Diff line Loading @@ -19,12 +19,7 @@ return [ 'authentication' => [ 'adapters' => [ 'basic' => [ 'adapter' => \ZF\MvcAuth\Authentication\HttpAdapter::class, 'options' => [ 'accept_schemes' => [ 0 => 'basic', ], 'realm' => 'api', 'htpasswd' => __DIR__ . '/../users.htpasswd', ], ], Loading
data/sql/apogee/01-vues-apogee-communes.sql +260 −370 File changed.Preview size limit exceeded, changes collapsed. Show changes