Commit 0c1778a8 authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

MAJ Docs

parent 4e5927a4
......@@ -8,6 +8,12 @@ author: Laurent Lécluse - DSI - Unicaen
## Corrections de bugs
* Les avenants comportaient par défaut un champ "modifieComplete" qui n'était pas fourni par la vue.
* Lors de la saisie d'un nouveau service d'enseignement, si la formation a déjà été sélectionnée :
* Les éléments sont triés correctement
* Les éléments sont affichés avec le semestre
* Avenants au contrat travail corrigé : le projet et l'avenant validé ne présentaient pas les mêmes nombres d'heures dans le détail des services.
* Procédures d'installation et de mise à jour intégrées directement au projet dans Gitlab.
## Nouveautés
......
---
title: "Procédure d'installation de OSE"
author: Laurent Lécluse - DSI - Unicaen
titlepage: true
titlepage-color: 06386e
titlepage-text-color: ffffff
titlepage-rule-color: ffffff
titlepage-rule-height: 1
...
# Prérequis
## Serveur Web
Installer sur une distribution GNU/Linux - Debian 9 (Stretch) de préférence.
Dépendances requises :
* git
* wget
* Apache 2 avec le module de réécriture d'URL (*rewrite*) activé
* PHP 7.0 avec les modules suivants :
* cli
* curl
* intl
* json
* ldap
* bcmath
* mbstring
* mcrypt
* opcache
* xml
* zip
* bcmath
* gd
* OCI8 (pilote pour Oracle).
Le mode installation de OSE liste toutes les dépendances nécessaires et teste leur présence sur votre serveur.
## Unoconv
### Présentation
Unoconv est un utilitaire qui utilise LibreOffice pour convertir des documents depuis le format OpenDocument
vers le format PDF.
OSE l'utilise par exemple pour générer des contrats de travail ou d'autres états de sortie destinés à l'impression.
**UnoConv** devra donc être installé sur le serveur.
### Installation
Unoconv est intégré à la plupart des distributions GNU/Linux.
Spécifique à Debian :
Il en existe un paquet intégré à Debian.)
Attention également : sous Debian, unoconv peut s'installer par apt-get, mais il faut aussi installer LibreOffice Writer, la dépendance n'étant pas automatique (`apt-get install unoconv libreoffice-writer`).
### Configuration
Unoconv doit être lancé en tant que démon.
Il tournera donc en tâche de fond et OSE fera appel à lui pour effectuer les conversions en PDF souhaitées.
Pour cela, la commande `unoconv --listener` doit être lancée.
Voici un exemple de configuration du démon unoconv lancé au moyen de systemd :
Dans le fichier `/etc/systemd/system/unoconv.service`, placez le contenu suivant :
```ini
[Unit]
Description=Unoconv listener for document conversions
Documentation=https://github.com/dagwieers/unoconv
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=simple
ExecStart=/usr/bin/unoconv --listener
[Install]
WantedBy=multi-user.target
```
Puis activez et lancez le service :
```bash
systemctl enable unoconv.service
systemctl start unoconv.service
```
## Base de données
### Spécifications
Les spécifications sont les suivantes :
* 4 CPU virtuels
* 2 Go de RAM minimum par base de données
* tablespace de 9 Go (pour 3 années d'utilisation)
* un tablespace UNDO de 1 Go minimum ou supprimer la rétention
* un tablespace temporaire de 2 Go minimum
* encodage en UTF-8, Oracle Enterprise Edition 11.2.0.3 (ou +)
### Paramétrage
Pour information, notre base de données est configurée avec les paramètres suivants :
| Paramètre | Valeur |
| --------------------- | ----------- |
|NLS_LANGUAGE | AMERICAN |
|NLS_TERRITORY | AMERICA |
|NLS_CURRENCY | $ |
|NLS_ISO_CURRENCY | AMERICA |
|NLS_NUMERIC_CHARACTERS | ., |
|NLS_CHARACTERSET | AL32UTF8 |
|NLS_CALENDAR | GREGORIAN |
|NLS_DATE_FORMAT | DD-MON-RR |
|NLS_DATE_LANGUAGE | AMERICAN |
|NLS_SORT | BINARY |
|NLS_TIME_FORMAT | HH.MI.SSXFF AM |
|NLS_TIMESTAMP_FORMAT | DD-MON-RR HH.MI.SSXFF AM |
|NLS_TIME_TZ_FORMAT | HH.MI.SSXFF AM TZR |
|NLS_TIMESTAMP_TZ_FORMAT | DD-MON-RR HH.MI.SSXFF AM TZR |
|NLS_DUAL_CURRENCY | $ |
|NLS_COMP | BINARY |
|NLS_LENGTH_SEMANTICS | BYTE |
|NLS_NCHAR_CONV_EXCP | FALSE |
|NLS_NCHAR_CHARACTERSET | AL16UTF16 |
|NLS_RDBMS_VERSION | 11.2.0.3.0 |
La liste de vos paramètres est accessible via la requête suivante :
```sql
SELECT * FROM NLS_DATABASE_PARAMETERS;
```
### Afficher les messages d'erreur en français dans OSE
Pour afficher les messages d'erreur en français dans OSE, il faut définir une variable d'environnement PHP
spécifique : `NLS_LANG` avec pour valeur `FRENCH`.
Avec Apache, vous devez ajouter la ligne suivante à votre configuration dans le fichier envvars :
```apache
export NLS_LANG="FRENCH"
```
# Installation des fichiers
L'installation se fait en récupérant les sources directement depuis le dépôt GitLab de l'Université de Caen.
Un script a été conçu pour automatiser cette opération.
Exécutez la commande suivante sur votre serveur :
```bash
wget https://ose.unicaen.fr/deploiement/ose-deploy && php ose-deploy
```
# Configuration d'Apache
## Avec un VirtualHost
Exemple pris avec /var/www/ose en répertoire d'installation et ose.unicaen.fr en nom d'hôte.
A adapter à vos besoins.
```apache
<VirtualHost *:80>
ServerName ose.unicaen.fr
DocumentRoot /var/www/ose/public
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
# Usage de l'application.
# Plusieurs valeurs possibles : development, test, production
SetEnv APPLICATION_ENV "test"
php_value upload_max_filesize 50M
php_value post_max_size 100M
php_value max_execution_time 300
php_value max_input_time 60
php_value memory_limit 256M
<Directory /var/www/ose/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
</Directory>
</VirtualHost>
```
## Avec un alias
Exemple pris avec /var/www/ose en répertoire d'installation et /ose en Alias.
A adapter à vos besoins.
```apache
Alias /ose /var/www/ose/public
<Directory /var/www/ose/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
RewriteEngine On
RewriteBase /ose
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
# Usage de l'application.
# Plusieurs valeurs possibles : development, test, production
SetEnv APPLICATION_ENV "test"
php_value upload_max_filesize 50M
php_value post_max_size 100M
php_value max_execution_time 300
php_value max_input_time 60
php_value memory_limit 256M
</Directory>
```
N'oubliez pas de recharger la configuration d'Apache (systemctl reload apache2)!
# Création de la base de données
Créez une base de données avec un utilisateur pour OSE, un schéma, puis un tablespace vides.
Un script d'initialisation vous est fourni (répertoire data/Déploiement/ose-ddl.sql). Il vous revient de le lancer pour peupler la base de données.
Attention à bien veiller à ce que les accents soient correctement traités.
Les caractères du fichier sont en **UTF8**.
# Configuration technique
Personnalisez le fichier `config.local.php` pour adapter OSE à votre établissement.
# Mode installation
Allez ensuite sur OSE. Par défaut, le mode installation est activé.
Ce mode vous permettra de :
* vérifier que toutes les dépendances nécessaires au bon fonctionnement de l'application sont satisfaites
* contrôler que les paramètres de configuration que vous avez choisi fonctionnent correctement
* Choisir ou changer le mot de passe de l'utilisateur `oseappli`, qui est administrateur de l'application.
Une fois cette étape terminée, il convient de passer OSE en mode production. Cela se fait dans le fichier de configuration `config.local.php`, en positionnant à `false` `global/modeInstallation`.
# Mise en place des tâches CRON
Des tâches CRON doivent être lancée sur votre serveur régulièrement pour mettre à jour certaines données
ou réaliser des actions.
Ces tâches n'ont pas besoin d'être lancées régulièrement sur un serveur de pré-production.
Dans tous les cas, c'est le script de OSE qui sera appelé.
Le script est situé dans le répertoire de OSE, `bin/ose`.
Il est suivi de l'action à exécuter, puis éventuellement de paramètres à préciser.
Exemple d'utilisation pour lancer une tâche de synchronisation appelée `synchro`:
```bash
/usr/bin/php /var/www/ose/bin/ose synchronisation synchro
```
| Usage | Fréquence | Action de script |
| --------------------- | --------------------- | --------------------- |
| Indicateurs : envoi des notifications par mail | Les jours de semaine entre 5h et 17h | notifier-indicateurs |
| Synchronisation : Mise en place d'un job pour l'import des données. Plusieurs jobs pourront être créés au besoin | Tous les quarts d'heures entre 7h et 21h sauf le dimanche | synchronisation `<Nom du job>` |
| Calcul des effectifs du module Charges | une fois par jour, à 20h tous les jours sauf le dimanche. | chargens-calcul-effectifs |
| Calcul des tableaux de bord | Deux fois par jour sauf le dimanche (Calcul LONG) | calcul-tableaux-bord |
| Calcul des heures complémentaires à l'aide de la formule (calcul LONG) | Les lundi et jeudi à 3h | formule-calcul |
Après la commande, on ajoute `> /tmp/oselog 2>&1` pour loguer le résultat dans le fichier`/tmp/oselog`.
A adapter le cas échéant.
Voici un exemple de crontab :
```cron
# m h dom mon dow command
0 5-17 * * 1-5 /usr/bin/php /var/www/ose/bin/ose notifier-indicateurs > /tmp/oselog 2>&1
*/15 7-21 * * 1-6 /usr/bin/php /var/www/ose/bin/ose synchronisation synchro > /tmp/oselog 2>&1
0 20 * * 1-6 /usr/bin/php /var/www/ose/bin/ose chargens-calcul-effectifs > /tmp/oselog 2>&1
0 6,14 * * 1-6 /usr/bin/php /var/www/ose/bin/ose calcul-tableaux-bord > /tmp/oselog 2>&1
0 3 * * 1,4 /usr/bin/php /var/www/ose/bin/ose formule-calcul > /tmp/oselog 2>&1
```
OSE est maintenant installé.
# Connecteurs
Afin de pouvoir intégrer OSE à votre système d'information,
des [connecteurs](https://git.unicaen.fr/open-source/OSE/tree/master/data/D%C3%A9ploiement/Connecteurs)
vous sont fournis à titre d'exemple.
Vous devrez en effet les adapter à vos besoins.
# Paramétrage de l'application
Reste enfin à paramétrer l'application en fonction de vos besoins.
[Le guide administratif](https://redmine.unicaen.fr/Etablissement/projects/deploiement_ose/dmsf?folder_id=3204) vous aidera en cela.
---
title: "Procédure de mise à jour de OSE"
author: Laurent Lécluse - DSI - Unicaen
titlepage: true
titlepage-color: 06386e
titlepage-text-color: ffffff
titlepage-rule-color: ffffff
titlepage-rule-height: 1
...
# Procédure de mise à jour
## Mode maintenance
Placez OSE en mode maintenance. Dans le fichier `config.local.php` :
* `maintenance/modeMaintenance` doit passer à `true`.
* `maintenance/messageInfo` peut être personnalisé pour informer les utilisateurs.
## Mise à jour des fichiers
* Si les fichiers sources de OSE ont été modifiés manuellement (hors fichier de configuration local), veillez à remettre la copie
de travail dans son état originel au moyen de la commande suivante :
`git reset --hard` (dans le répertoire de l'application).
* Dans le répertoire de l'application, exécutez `./bin/ose update`, puis suivez les instructions.
## Mise à jour de la base de données
* Dans le répertoire `data/Mises à jour`, si un fichier `.sql` corresopnd à la nouvelle version installée,
exécutez les requêtes dans SQL Developer pour mettre à jour la base de données.
## Tests
Le fichier `data/Déploiement/Changements.pdf` recense les changements apportés par les différentes versions de l'application.
Vous êtes invité à tester prioritairement ces changements.
## Passage en production
Sortez du mode maintenance. Dans le fichier `config.local.php` :
* `maintenance/modeMaintenance` doit passer à `false`.
C'est fini!
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment