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
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
RewriteEngineOn
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>
OptionsIndexesFollowSymLinksMultiViews
AllowOverrideNone
</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>
OptionsIndexesFollowSymLinksMultiViews
AllowOverrideAll
Order allow,deny
allowfromall
RewriteEngineOn
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`:
| 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`.