Commit bce2b533 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release-1.1.4'

parents a0a325a4 5dffcb20
Loading
Loading
Loading
Loading
Loading

CHANGELOG.md

0 → 100644
+22 −0
Changes for CHANGELOG.md: 22 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Journal des modifications

Avant la version 1.1.4, le journal des modifications n'avait pas encore été découvert.

## 1.1.4 (03/04/2019)

### Nouveautés

- Ouverture à toutes personnes identifiées de la consultation de la liste des thèses, à la recherche de thèse et à la 
  visualisation de la page d'information associée à une thèse. 

### Améliorations

- Suppression dans la table `THESE` de la redondance de l'année universitaire de 1ere inscription avec la table
  `THESE_ANNEE_UNIV`. La colonne `ANNEE_UNIV_1ERE_INSC` n'est plus utilisée, vaut toujours NULL et disparaîtra dans 
  une version ultérieure. 
- Possibilité de changer le lien/logo affiché dans le pied des pages de l'application.

### Corrections

- Résolution du problème de l'année universitaire de 1ere inscription erronée en cas de changement de discipline.
  Requiert la version 1.2.5 du web service d'import.
+13 −11
Changes for Dockerfile: 13 added lines, 11 removed lines.
Original line number Diff line number Diff line
@@ -4,18 +4,17 @@
#
###########################################################################################

FROM unicaen-dev-php7.0-apache
ARG PHP_VERSION

LABEL maintainer="Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>"
FROM unicaen-dev-php${PHP_VERSION}-apache

ENV APACHE_CONF_DIR=/etc/apache2 \
    PHP_CONF_DIR=/etc/php/7.0
LABEL maintainer="Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>"

## Installation de packages requis.
RUN apt-get update -qq && \
    apt-get install -y \
        ghostscript-x \
        php7.0-imagick
        php${PHP_VERSION}-imagick

# Nettoyage
RUN apt-get autoremove -y && apt-get clean && rm -rf /tmp/* /var/tmp/*
@@ -27,10 +26,13 @@ RUN ln -sf /dev/stderr /var/log/apache2/error.log

# Configuration Apache, PHP et FPM
ADD docker/apache-ports.conf    ${APACHE_CONF_DIR}/ports.conf
ADD docker/apache-site.conf     ${APACHE_CONF_DIR}/sites-available/sygal.conf
ADD docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/sygal-ssl.conf
ADD docker/fpm/pool.d/app.conf  ${PHP_CONF_DIR}/fpm/pool.d/sygal.conf
ADD docker/fpm/conf.d/app.ini   ${PHP_CONF_DIR}/fpm/conf.d/sygal.ini
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

# Copie des scripts complémentaires à lancer au démarrage du container
COPY docker/entrypoint.d/* /entrypoint.d/

RUN a2ensite sygal sygal-ssl && \
    service php7.0-fpm reload
RUN a2ensite app app-ssl && \
    service php${PHP_VERSION}-fpm reload
+30 −13
Changes for Dockerfile.sh: 30 added lines, 13 removed lines.
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"
SYGAL_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 ${SYGAL_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
# NB: Variables d'env exportées par ${UNICAEN_IMAGE_TMP_DIR}/Dockerfile.sh
# APACHE_CONF_DIR=/etc/apache2
# 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.conf
cp docker/apache-site-ssl.conf ${APACHE_CONF_DIR}/sites-available/sygal-ssl.conf
cp docker/fpm/pool.d/app.conf  ${PHP_CONF_DIR}/fpm/pool.d/sygal.conf
cp docker/fpm/conf.d/app.ini   ${PHP_CONF_DIR}/fpm/conf.d/sygal.ini
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 sygal-ssl && \
    service php7.0-fpm reload
a2ensite app app-ssl && \
    service apache2 reload && \
    service php${PHP_VERSION}-fpm reload
+56 −9
Changes for INSTALL.md: 56 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -18,8 +18,13 @@ proposer des améliorations pour cette doc d'install!

### Première obtention des sources de l'application

Sur un serveur *Debian Stretch* de préférence, lancez les commandes suivantes pour obtenir les sources de SyGAL :
*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.

Sur un serveur *Debian Stretch*, en `root`, lancez les commandes suivantes pour installer git et obtenir les sources de 
SyGAL :
```bash
apt-get update -qq && apt-get install -y git
git clone https://git.unicaen.fr/open-source/sygal.git /var/www/sygal
```

@@ -34,7 +39,7 @@ traduit en bash.)
Lancez le script `Dockerfile.sh` ainsi :
```bash
cd /var/www/sygal
source Dockerfile.sh
bash Dockerfile.sh 7.0
```

Ensuite, vérifiez et ajustez si besoin sur votre serveur les fichiers de configs suivants,
@@ -68,7 +73,7 @@ git checkout --force 1.0.9 && bash install.sh
### Configuration du moteur PHP pour SyGAL

Si l'on est sur un serveur de PROD, corrigez les lignes suivantes du fichier de config PHP 
`/etc/php/7.0/fpm/conf.d/sygal.ini` :
`/etc/php/7.0/fpm/conf.d/90-app.ini` :

    ...
    display_errors = Off
@@ -83,18 +88,55 @@ Placez-vous dans le répertoire de l'application puis descendez dans le réperto
Supprimez l'extension `.dist` des fichiers suivants :
- `local.php.dist`
- `secret.local.php.dist`
Dans la suite, vous les adapterez à votre situation.

#### `unicaen-app.global.php`

- Adaptez les URL des pages "Mentions légales" et "Informatique et liberté" pour votre établissement :

Dans la suite, vous les adapterez à votre situation...
```php
    'unicaen-app' => [
        'app_infos' => [
            //...
            'mentionsLegales'        => "http://www.unicaen.fr/acces-direct/mentions-legales/",
            'informatiqueEtLibertes' => "http://www.unicaen.fr/acces-direct/informatique-et-libertes/",
```

#### `local.php`

RAS.
- Adaptez le `'label'`, `'title'` et `'uri'` du lien mentionnant votre établissement dans le pied de page de 
  l'application :

```php
    'navigation'   => [
        'default' => [
            'home' => [
                'pages' => [
                    'etab' => [
                        'label' => _("Normandie Université"),
                        'title' => _("Page d'accueil du site de Normandie Université"),
                        'uri'   => 'http://www.normandie-univ.fr',
                        'class' => 'logo-etablissement',
                        // NB: Spécifier la classe 'logo-etablissement' sur une page de navigation provoque le "remplacement"
                        //     du label du lien par l'image 'public/logo-etablissement.png' (à créer le cas échéant).
```
*NB: ensuite créez le fichier `public/logo-etablissement.png` correspondant au logo de votre établissement.*

- Adaptez le chemin du répertoire où seront stockés les fichiers uploadés par les utilisateurs de l'application :

```php
    'fichier' => [
        'root_dir_path' => '/app/upload',
    ],
```
*NB: ce répertoire doit être autorisé en écriture à l'utilisateur `www-data` (ou équivalent).*

#### `secret.local.php`

Concernant la config de connexion au WS, `'UCN'` doit être remplacé par le code établissement choisi lors
- Dans la config de connexion au WS suivante, `'UCN'` doit être remplacé par le code établissement choisi lors
de la création de votre établissement dans la base de données (dans le script [`05-init.sql`](04-init.sql)) :

```php
    'import-api' => [
        'etablissements' => [
            // code établissement => [config]
@@ -104,9 +146,11 @@ de la création de votre établissement dans la base de données (dans le script
                'verify'   => false, // si true et faux certif : cURL error 60: SSL certificate problem: self signed certificate
                'user'     => 'xxx',
                'password' => 'yyy',
```

Renseignez les infos de connexion à la BDD :
- Renseignez les infos de connexion à la base de données :

```php
    'doctrine' => [
        'connection' => [
            'orm_default' => [
@@ -118,11 +162,13 @@ Renseignez les infos de connexion à la BDD :
                    'password' => 'xxxxxxxxxxx',
                    'charset'  => 'AL32UTF8',
                    'CURRENT_SCHEMA' => $user,
```

La config fournie permet de simuler l'authentification Shibboleth de l'utilisateur 'premierf@univ.fr' 
- La config fournie permet de simuler l'authentification Shibboleth de l'utilisateur 'premierf@univ.fr' 
créé en base de données (dans le script [`05-init.sql`](04-init.sql)) avec le rôle "Administrateur technique".
Cela permet d'accéder aux pages de gestion des droits d'accès.

```php
    'unicaen-auth' => [
        'shibboleth' => [
            'simulate' => [
@@ -133,8 +179,9 @@ Cela permet d'accéder aux pages de gestion des droits d'accès.
                'HTTP_GIVENNAME'      => 'François',
                'HTTP_SN'             => 'Premier',
                'HTTP_SUPANNCIVILITE' => 'M.'
```

Théoriquement, à ce stade l'application SyGAL devrait être accessible.
- Théoriquement, à ce stade l'application SyGAL devrait être accessible.


## Dans l'application SyGAL elle-même
+17 −5
Changes for README.md: 17 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -14,20 +14,25 @@ En dev, on monte les sources (répertoire courant) dans un volume.

### Avec docker-compose

```bash
docker-compose up -d --build
```
    
Enlever le `-d` (detached) pour voir les logs en direct.

### Sans docker-compose

```bash
docker build \
--add-host="proxy.unicaen.fr:10.14.128.99" \
--add-host="svn.unicaen.fr:10.14.129.44" \
    --build-arg http_proxy="http://proxy.unicaen.fr:3128" \
    --build-arg https_proxy="http://proxy.unicaen.fr:3128" \
    --build-arg no_proxy=".unicaen.fr,localhost" \
--build-arg PHP_VERSION=7.0 \
--build-arg HTTP_PROXY="http://proxy.unicaen.fr:3128" \
--build-arg HTTPS_PROXY="http://proxy.unicaen.fr:3128" \
--build-arg NO_PROXY=".unicaen.fr,localhost" \
-t unicaen/sygal-php7-dev-image \
.
```

NB: Il est possible de spécifier le proxy par son adresse IP mais 
*il ne faut pas oublier* de mettre `http://` devant 
@@ -35,23 +40,30 @@ NB: Il est possible de spécifier le proxy par son adresse IP mais

Run :

    sudo docker run -d \
```bash
docker run \
--rm \
-d \
-p 8080:80 \
    -v "$PWD":/webapp \
-p 8443:443 \
-v ${PWD}:/app \
--dns=10.14.128.125 \
--dns-search=unicaen.fr \
--name sygal-php7-dev-container \
unicaen/sygal-php7-dev-image
```

### Debug

### CLI 

```bash
docker exec -it sygal-php7-dev-container \
bash -c "\
export XDEBUG_CONFIG='remote_host=172.17.0.1' && \
export PHP_IDE_CONFIG='serverName=docker' && \
php ./public/index.php process-observed-import-results"
```
        
- `172.17.0.1` est l'IP obtenue avec la commande `docker network inspect bridge | grep Gateway`
- `docker` est le nom du serveur correspondant au container Docker, à configurer dans PHPStorm.
Loading