Commit 453ac8f0 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release-1.2.5'

parents 9680e54a d21a7bc9
Loading
Loading
Loading
Loading
Loading
+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

@@ -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
+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`.
@@ -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

@@ -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 :
@@ -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.
+0 −5
Original line number Diff line number Diff line
@@ -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',
                    ],
                ],
+260 −370

File changed.

Preview size limit exceeded, changes collapsed.

+24 −13
Original line number Diff line number Diff line
@@ -6,17 +6,22 @@
-- Web Service d'import de données
-- -------------------------------
--
-- Vues Apogée UCN.
-- Vues Apogée propre à votre établissement, à personnaliser.
--


--
-- Vue fournissant les "variables d'environnement" requis par SyGAL :
--   - Adresse mail de l'assistance utilisateur
--   - Adresse mail de contact de la BU
--   - Adresse mail de contact du bureau des doctorats
--
create or replace view SYGAL_VARIABLE_MANU as
  select
    'apogee' as source_id,
    'EMAIL_ASSISTANCE' as id,
    'EMAIL_ASSISTANCE' as cod_vap,
    'Adresse mail de l''assistance utilisateur' as lib_vap,
    'assistance-sygal@unicaen.fr' as par_vap,
    'assistance-sygal@univ.fr' as par_vap, -----------------------------> à personnaliser
    to_date('2017-01-01', 'YYYY-MM-DD') as DATE_DEB_VALIDITE,
    to_date('9999-12-31', 'YYYY-MM-DD') as DATE_FIN_VALIDITE
  from dual
@@ -26,7 +31,7 @@ create or replace view SYGAL_VARIABLE_MANU as
    'EMAIL_BU' as id,
    'EMAIL_BU' as cod_vap,
    'Adresse mail de contact de la BU' as lib_vap,
    'scd.theses@unicaen.fr' as par_vap,
    'bu@univ.fr' as par_vap, ------------------------------------------> à personnaliser
    to_date('2017-01-01', 'YYYY-MM-DD') as DATE_DEB_VALIDITE,
    to_date('9999-12-31', 'YYYY-MM-DD') as DATE_FIN_VALIDITE
  from dual
@@ -36,19 +41,25 @@ create or replace view SYGAL_VARIABLE_MANU as
    'EMAIL_BDD' as id,
    'EMAIL_BDD' as cod_vap,
    'Adresse mail de contact du bureau des doctorats' as lib_vap,
    'recherche.doctorat@unicaen.fr' as par_vap,
    'bdd@univ.fr' as par_vap, -----------------------------------------> à personnaliser
    to_date('2017-01-01', 'YYYY-MM-DD') as DATE_DEB_VALIDITE,
    to_date('9999-12-31', 'YYYY-MM-DD') as DATE_FIN_VALIDITE
  from dual
/

--
-- Vue traduisant les codes rôles en usage dans votre établissement vers les codes compris par SyGAL.
--
create or replace view SYGAL_ROLE_TR as
  select 'A', 'A' from dual union
  select 'B', 'B' from dual union
  select 'C', 'C' from dual union
  select 'D', 'D' from dual union
  select 'K', 'K' from dual union
  select 'M', 'M' from dual union
  select 'P', 'P' from dual union
  select 'R', 'R' from dual
  with tmp(FROM_COD_ROJ, TO_COD_ROJ) as (
      select 'A', 'A' from dual union -- A : Membre absent
      select 'B', 'B' from dual union -- B : Co-encadrant
      select 'C', 'C' from dual union -- C : Chef de laboratoire
      select 'D', 'D' from dual union -- D : Directeur de thèse
      select 'K', 'K' from dual union -- K : Co-directeur de thèse
      select 'M', 'M' from dual union -- M : Membre du jury
      select 'P', 'P' from dual union -- P : Président du jury
      select 'R', 'R' from dual       -- R : Rapporteur du jury
    )
    select * from tmp
/
Loading