Commit 215f5771 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

MaJ de la documentation

parent 621e8a8c
Loading
Loading
Loading
Loading

doc/documentation-publique.md

deleted100644 → 0
+0 −246
Changes for doc/documentation-publique.md: 0 added lines, 246 removed lines.
Original line number Diff line number Diff line
# Installation

Oscar est une **application web** développée par l'Université de Caen Normandie. Ce document présente les prérequis techniques et la procédure d'installation.


## Prérequis

 - Système linux (Debian, Ubuntu)
 - Serveur web (Apache2)
 - PHP 5.6+ (compatible 7.0+) (support LDAP, Postgresql)
 - Postgresql 9.4+
 - Annuaire LDAP (supann)

Selon les différents connecteurs, des modules PHP peuvent être requis (ex : Connecteur vers une base de données MySQL, nécessite le module MySQL de PHP)


## Installation

### Mettre à jour le système

Commencer par mettre le système à jour

```bash
apt-get update
```

```bash
apt-get upgrade
```


### Logiciels tiers

Installation du serveur Web *Apache* : 

```bash
# Apache2, le serveur web
apt-get install apache2
```

Installation de *PHP 5.6 +*, avec les modules *LDAP*, *Curl*, *Pgsql* et *Intl* :

```bash
# PHP + Modules PHP
apt-get install php5 php5-ldap php5-curl php5-cli php5-pgsql php5-intl
```

Installation de *Postgresql* (Installer également le serveur si besoin)

```bash
# Postgresql (ou autre selon le client de BDD utilisé)
apt-get install postgresql-client postgresql-client-common
```

Installation de *GIT* :

```bash
# GIT (composer va en avoir besoin pour récupérer les librairies tiers)
apt-get install git
```

Pour le développement : 

```bash
# NodeJS (idem)
apt-get install nodejs nodejs-legacy npm
```

### Proxy

Si besoin, penser à configurer le proxy

```bash
export http_proxy=http://proxy.domain.fr:3128
export https_proxy=http://proxy.domain.fr:3128
```

## Installation de la copie

### Dossier racine

Dans le dossier **/var/oscar** (Dossier recommandé), à créer si ça n'est pas déjà fait :

```bash
mkdir -p /var/oscar
cd !$
```

Obtenir la copie de **Oscar** :

```bash
git checkout git clone git@git.unicaen.fr:bouvry/oscar.git
```


### Configuration d'oscar

```bash
cd oscar
```

### Oscar (Base de données)

Copier le fichier de configuration `./config/autoload/local.php.dist`, puis éditer
la configuration de la base de donnée. **Penser à modifier le driver selon la bdd
utilisée**.

```bash
cp config/autoload/local.php.dist config/autoload/local.php
vi !$
```

Une copie des données de développement est maintenue à jour dans le dossier `./data/backup_oscar-dev-lasted.sql_` en tenant compte des évolutions du modèle.

Pour une installation "vide", utiliser la structure et les données initiales du dossier `install/`

### Unicaen App (ldap & mail)

Copier le fichier `unicaen-app.local.php.dist` puis éditer :

```bash
cp config/autoload/unicaen-app.local.php.dist config/autoload/unicaen-app.local.php
vi !$
```

Ce fichier permet de configurer l'authentification LDAP utilisée dans Oscar


### Installation des librairies tiers PHP (développement uniquement)

Les librairies PHP sont gérées avec [Composer](https://getcomposer.com), installez le si ça n'est pas déjà fait :

```bash
curl -sS https://getcomposer.org/installer | php
```

Puis installer/mettre à jour les dépendances du projet :

```bash
php composer.phar install
```

Le processus peut être assez long

### Installation des librairies tiers FRONT (Developpement uniquement)

(Toujours depuis le dossier developpement)

```bash
npm install
```

Puis installation des librairies JS/CSS via *bower*

```bash
node node_modules/bower/bin/bower --allow-root update
```


### Mise à jour de la BDD

Depuis la racine du projet, commencer par visualiser les requêtes qui seront envoyées

```bash
php vendor/bin/doctrine-module orm:schema-tool:update --dump-sql
```

Puis mettre à jour la structure avec le flag `--force` :

```bash
php vendor/bin/doctrine-module orm:schema-tool:update --force
```

### Configuration du VHost

Activer les modules Apache si besoin :

```bash
a2enmod rewrite
a2enmod ssl
service apache2 reload
```

Éditer le fichier de configuration apache2 :

```bash
vi /etc/apache2/sites-available/000-default.conf
```

```apacheconf
<VirtualHost *:80>
   ServerAdmin stephane.bouvry@unicaen.fr
   ServerName oscar-pp.unicaen.fr
   ServerAdmin webmaster@localhost

   # redirection vers 443
   RewriteEngine on
   RewriteCond %{SERVER_PORT} !^443$
   RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>

<VirtualHost *:443>
   ServerAdmin stephane.bouvry@unicaen.fr
   ServerName oscar-pp.unicaen.fr
   ServerAdmin webmaster@localhost
   DocumentRoot /var/www/oscar

   SSLEngine On
   SSLCertificateFile /etc/ssl/certs/oscar-pp_unicaen_fr.crt
   SSLCertificateKeyFile /etc/ssl/private/oscar-pp_unicaen_fr.key
   SSLCACertificateFile /etc/ssl/certs/DigiCertCA.crt

   # Visible dans l'application
   SetEnv APPLICATION_ENV beta

   <Directory /var/www/oscar>
      DirectoryIndex index.php
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
   </Directory>

   LogLevel debug
   ErrorLog ${APACHE_LOG_DIR}/oscar-error.log
   CustomLog ${APACHE_LOG_DIR}/oscar-access.log combined
</VirtualHost>
```

Indiquer comme **DocumentRoot /path/to/oscar/public*** puis créer un lien symbolique dans **/var/www** :

```bash
cd /var/www
ln -s ../var/oscar/public oscar
```

## Droits d'écriture

S'assurer que les dossiers :

 - `./data/DoctrineORMModule`
 - Le dossier choisi pour l'index Lucene
 - Les dossiers des documents
 - Le dossier logs

Sont bien accessibles en écriture.
+75 −16
Changes for doc/install-prod.md: 75 added lines, 16 removed lines.
Original line number Diff line number Diff line
@@ -6,11 +6,10 @@ L'installation a été testé sous Debian et Ubuntu Server

 - Système linux (Debian, Ubuntu)
 - Serveur web (Apache2)
 - PHP 5.6+ (compatible 7.0+) (support LDAP, Postgresql)
 - PHP 7.0+ (compatible 5.6+ pour le moment) (support LDAP, Postgresql)
 - Postgresql 9.4+
 - Annuaire LDAP (supann)


## Installation du système

On commence par mettre le système à jour.
@@ -33,7 +32,15 @@ apt-get install git-core
apt-get install apache2

# PHP + Modules PHP
apt-get install php5 php5-ldap php5-curl php5-cli php5-pgsql php5-intl php5-mcrypt
apt-get install \
    php7.0 \
    php7.0-cli \
    php7.0-curl \
    php7.0-intl \
    php7.0-ldap \
    php7.0-mcrypt \
    php7.0-pgsql


# Postgresql (ou autre selon le client de BDD utilisé)
apt-get install postgresql-client postgresql-client-common
@@ -48,8 +55,6 @@ export http_proxy=http://proxy.unicaen.fr:3128
export https_proxy=http://proxy.unicaen.fr:3128
```



## Installation de la copie

Dans le dossier **/var/oscar**, à créer si ça n'est pas déjà fait :
@@ -70,25 +75,23 @@ git clone https://<USER>@git.unicaen.fr/bouvry/oscar

*Oscar* utilise des libraires tiers (vendor). 

Pour le développement, elles sont gérées via composer, son utilisation necessite 
 d'avoir accès aux librairies embarquées **Unicaen** : UnicaenApp, UnicaenAuth.
Pour le développement, elles sont gérées via composer, son utilisation nécessite 
 d'avoir accès aux librairies embarquées **Unicaen** : *UnicaenApp*, *UnicaenAuth*.
 
Pour une installation en production/démo, une archive du dossier vendor est 
 disponible dans le dossier `install` : 
**Pour une installation en production/démo**, une archive du dossier vendor est 
 disponible dans le dossier `install` au format *.tar.gz* :

```bash
tar xvfz install/vendor.tar.gz
```

Ou pour les développeurs : 
Ou pour les développeurs situé dans le **réseau unicaen** : 

```bash
php composer.phar update
```




## Configuration d'oscar


@@ -136,7 +139,7 @@ psql -h localhost -U oscar < data/backup_oscar-empty.sql

La configuration de la BDD est spécifiée dans le fichier `config/autoload/local.php`.

Si le fichier n'existe pas, un modèle est présent dans `` :
Si le fichier n'existe pas, un modèle est présent dans `config/autoload/unicaen-app.local.php.dist` :

```bash
cp config/autoload/unicaen-app.local.php.dist config/autoload/unicaen-app.local.php
@@ -158,7 +161,7 @@ return array(
                    'port'     => '5432',
                    'user'     => 'oscar',
                    'password' => 'azerty',
                    'dbname'   => 'oscar',
                    'dbname'   => 'oscar_dev',
                    'charset'  => 'utf8'
                ),
            ),
@@ -167,7 +170,7 @@ return array(
);
```

## Configurer le serveur web (Apache)
### Configurer le serveur web (Apache)

Activer les modules Apache si besoin :

@@ -231,7 +234,7 @@ ln -s ../oscar/public oscar
```


## Droits d'écriture
### Droits d'écriture

S'assurer que les dossiers :

@@ -265,8 +268,64 @@ cp config/autoload/unicaen-app.local.php.dist config/autoload/unicaen-app.local.
vi !$
```

Voici un exemple de configuration LDAP : 

```php
<?php
$settings = array(
    // LDAP    
    'ldap' => array(
        'connection' => array(
            'default' => array(
                'params' => array(
                    'host'                => 'ldap.domain.tdl',
                    'port'                => 389,
                    'username'            => 'uid=identifiant,ou=system,dc=domain,dc=fr',
                    'password'            => 'P@$$W0rD',
                    'baseDn'              => 'ou=people,dc=domain,dc=fr',
                    'bindRequiresDn'      => true,
                    'accountFilterFormat' => '(&(objectClass=posixAccount)(supannAliasLogin=%s))',
                )
            )
        )
    ),
    // etc ...
);
```

  
**UnicaenAuth** va permettre de configurer l'accès à Oscar en utilisant le *Cas*. 
Pour les copies de développement/préprod, l'option `usurpation_allowed_usernames` 
permet de s'identifier à la place d'un utilisateur.


## Première connexion

### Compte administrateur

Pour l'administration de l'application, vous pouvez créer un compte administrateur 
dédié en utilisant l'utilitaire en ligne de commande.

Rendez-vous à la racine de l'application : 

```bash
cd /var/oscar_path
```

Puis on commence par créer un compte d'autentification : 

```bash
php public/index.php oscar auth:add admin admin@domaine.tld password "Administrateur"
```

Puis lon lui attribut le rôle "Administrateur" : 

```bash
php public/index.php oscar auth:promote admin Administrateur 
```

Utiliser ensuite la navigateur pour vous rendre sur oscar et utiliser l'identifiant **admin** avec la mot de passe **password** pour vous connecter en tant qu'administrateur.