Cette documentation présente les étapes à suivre pour installer OSCAR sur une machine de production ou de pré-production.
Cette documentation présente les étapes à suivre pour installer OSCAR sur une machine de production ou de pré-production.
## Installation du système d'exploitation
## Configuration minimale
Dans cet exemple, le système d'exploitation utilisé est un serveur Debian en version stable 12 Bookworm, architecture x86_64. Toutefois il n'y a pas de contraintes fortes liées à l'utilisation de Debian ou de cette version en particulier, ce qui signifie que bien que non testée, l'installation devrait fonctionner aussi pour une version légèrement plus ancienne ou plus récente, ainsi que pour un autre système Unix, en particulier pour Ubuntu qui est basé sur Debian.
La première partie va se concentrer sur l'essentiel pour obtenir une instance d'OSCAR aux fonctionnalités minimales. La seconde partie proposera un exemple de configuration correspondant à ce qui est actuellement en usage à l'université de Caen et pouvant servir de base à la configuration métier d'un nouvel OSCAR. Enfin, la troisième partie renverra vers des documentations spécifiques en fonction des modules optionnels que l'on souhaite activer (par exemple LDAP, CAS, PCRU, Signature...).
### Installation du système d'exploitation
Dans cet exemple, le système d'exploitation utilisé est un serveur Debian en version stable 12 Bookworm, architecture x86_64. Toutefois il n'y a pas de contraintes fortes liées à l'utilisation de Debian ou de cette version en particulier ce qui signifie que l'installation devrait fonctionner aussi pour une version légèrement plus ancienne ou plus récente ainsi que pour un autre système Unix, en particulier pour Ubuntu qui est basé sur Debian.
```bash
```bash
cat /etc/debian_version
cat /etc/debian_version
...
@@ -17,27 +21,24 @@ apt update
...
@@ -17,27 +21,24 @@ apt update
apt full-upgrade
apt full-upgrade
```
```
## Récupération du code source d'OSCAR
### Récupération du code source d'OSCAR
Les instructions suivantes vont :
- Créer le répertoire `/var/OscarApp`
- Installer Git
- Télécharger le code source projet OSCAR dans `/var/OscarApp/oscar`
```bash
```bash
# Création du répertoire /var/OscarApp qui contiendra l'application
mkdir /var/OscarApp
mkdir /var/OscarApp
cd /var/OscarApp
cd /var/OscarApp
# Installation de Git pour récupérer le code source
Par défaut le code récupéré correspond à la branche git `master` qui contient la version stable la plus récente. Pour installer plutôt une version spécifique, il faut récupérer la branche voulue. Par exemple pour la branche/version kusanagi :
Par défaut le code récupéré correspond à la branche git `master` qui contient la version stable la plus récente. Pour installer une version spécifique, il faut récupérer la branche voulue. Par exemple pour la branche/version kusanagi :
À cette étape, il devrait être possible de lancer la commande OSCAR qui liste les commandes disponibles :
> À cette étape, il devrait être possible de lancer la commande OSCAR qui liste les commandes disponibles.
```bash
```bash
php bin/oscar.php
php bin/oscar.php
```
```
## Check config
### La commande check config
La commande `php bin/oscar.php check:config` permet de vérifier si une installation d'OSCAR est correctement configurée. Au fur et à mesure de ce guide d'installation nous pourrons régulièrement lancer cette commande pour vérifier où nous en sommes. C'est uniquement à la fin de ce guide que cette commande ne retournera plus de message d'erreur.
```bash
```bash
# Copie du fichier de configuration locale par défaut à partir du modèle
# Copie du fichier de configuration locale par défaut à partir du modèle
PostgreSQL 15.12 (Debian 15.12-0+deb12u2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
PostgreSQL 15.12 (Debian 15.12-0+deb12u2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
```
Dans tous les cas, même si vous utilisez un serveur postgreSQL déjà existant, il faut créer un utilisateur pour OSCAR ainsi qu'une base de données sur laquelle cet utilisateur aura le droit de créer des tables, de lire, d'écrire et de supprimer des données.
```bash
# Création d'un utilisateur pour la connexion d'oscar (remplacer azerty par le mot de passe souhaité)
# Création d'un utilisateur pour la connexion d'oscar (remplacer azerty par le mot de passe souhaité)
CREATE USER oscar WITH PASSWORD 'azerty';
CREATE USER oscar WITH PASSWORD 'azerty';
CREATE DATABASE oscar OWNER oscar;
CREATE DATABASE oscar OWNER oscar;
...
@@ -104,7 +117,7 @@ GRANT ALL PRIVILEGES ON DATABASE oscar to oscar;
...
@@ -104,7 +117,7 @@ GRANT ALL PRIVILEGES ON DATABASE oscar to oscar;
exit
exit
```
```
Il devrait maintenant être possible de se connecter à la base de données oscar :
> Il devrait maintenant être possible de se connecter à la base de données oscar avec l'utilisateur oscar.
```bash
```bash
psql -h localhost -U oscar -d oscar
psql -h localhost -U oscar -d oscar
...
@@ -117,7 +130,7 @@ oscar=>
...
@@ -117,7 +130,7 @@ oscar=>
\q
\q
```
```
On peut alors mettre à jour la configuration de connexion à la base de données dans le fichier `config/autoload/local.php` (user, password, dbname etc).
Enfin, on peut alors mettre à jour la configuration de connexion à la base de données dans le fichier `config/autoload/local.php` (user, password, dbname etc).
```php
```php
// Accès BDDa
// Accès BDDa
...
@@ -148,13 +161,22 @@ On peut alors mettre à jour la configuration de connexion à la base de donnée
...
@@ -148,13 +161,22 @@ On peut alors mettre à jour la configuration de connexion à la base de donnée
),
),
),
),
```
```
## Installation des modules php manquants
### Installation des modules php manquants
```bash
```bash
apt install bz2
php bin/oscar.php check:config
```
```
## Installation du serveur web Apache2
La commande check:config nous indique que le module php bz2 est manquant, il faut l'installer.
```bash
apt install php8.2-bz2
```
### Installation du serveur web Apache2
Il ne reste plus qu'à installer un serveur web avec interpréteur PHP pour servir l'application. Dans cet exemple le serveur est Apache2.
```bash
```bash
# Installation d'apache2 et libapache2-mod-php8.2 :
# Installation d'apache2 et libapache2-mod-php8.2 :
...
@@ -164,7 +186,7 @@ apachectl -V
...
@@ -164,7 +186,7 @@ apachectl -V
Server version: Apache/2.4.62 (Debian)
Server version: Apache/2.4.62 (Debian)
```
```
## Création du fichier config/autoload/oscar-editable.yml
### Création du fichier config/autoload/oscar-editable.yml
Ce fichier contiendra des paramètres de configuration qui peuvent être modifiés directement depuis l'interface web d'administration d'oscar. Il doit donc être accessible en modification pour l'utilisateur du serveur web (ici www-data).
Ce fichier contiendra des paramètres de configuration qui peuvent être modifiés directement depuis l'interface web d'administration d'oscar. Il doit donc être accessible en modification pour l'utilisateur du serveur web (ici www-data).
Cette commande permet d'insérer dans la base de données les différents privilèges qui conditionnent l'accès aux différentes fonctionnalités de l'application.
```bash
php bin/oscar.php check:privileges
# Il faut lancer une deuxième fois la commande pour être sûr que tous les privilèges ont bien été insérés
php bin/oscar.php check:privileges
```
Dans le fichier `config/autoload/local.php`, il faut décommenter une configuration de `mailer`, et configurer les différentes variables suivant le besoin. La variable `urlAbsolute` doit indiquer le nom de domaine sur lequel l'instance sera joignable, car elle est utilisée pour générer les liens vers OSCAR qui seront intégrés aux différents emails.
### Configuration des emails
## OscarWorker (gearman) : Moteur de tâche
Dans le fichier `config/autoload/local.php`, il faut décommenter une configuration de `mailer` et configurer les différentes variables suivant le besoin. La variable `urlAbsolute` doit indiquer le nom de domaine sur lequel l'instance sera joignable, car elle est utilisée pour générer les liens vers OSCAR qui seront intégrés aux différents emails.
[Installation de oscarworker](./configuration/config-gearman.md)
### OscarWorker (gearman) : Moteur de tâche
Pour plus de détails, voir la documentation : [Installation de oscarworker](./configuration/config-gearman.md)
> À cette étape, il devrait être possible de se connecter avec un compte administrateur ayant tous les droits dans OSCAR. On peut alors accéder au menu Administration > Configuration et maintenance > Maintenance > Vérification de la configuration qui affiche des informations concernant la configuration similaires à celles de la commande `php bin/oscar.php check:config`
LogLevel debug
ErrorLog ${APACHE_LOG_DIR}/oscar-error.log
### Rendre le répertoire data accessible en lecture/écriture au serveur web
echo"deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list
apt update
apt install elasticsearch
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service
```
Si besoin, réduire la mémoire utilisée dans `/etc/elasticsearch/jvm.options` (`-Xms1g -Xmx1g`)
On peut à présent vérifier qu'Elastic répond bien : `curl localhost:9200`
> À partir de cette étape, toutes les vérifications doivent être OK (commande `php bin/oscar.php check:config` et sur l'interface d'administration).
## Configuration spécifique
La première partie de cette documentation a permis de réaliser l'installation minimale de la partie technique d'OSCAR. Il reste à présent à réaliser la configuration métier (création de types d'utilisateurs, attribution des rôles etc). Pour vous faciliter la mise en place, cette partie propose à titre d'exemple la configuration actuellement en usage à l'université de Caen. À vous ensuite d'adapter selon vos besoins en ajoutant/modifiant/retirant certaines valeurs.