Hébergement GEPI sous CentOS

GEPIGEPI (Gestion des Élèves par Internet) est une solution efficace de gestion et de suivi des résultats scolaires pour les établissements scolaires du second degré. Déployée sur un serveur, l’application est accessible via une connexion Internet sécurisée par tous les acteurs de l’établissement : administrateurs, enseignants, élèves et parents d’élèves.

De la saisie des résultats de chaque évaluation par les professeurs à l’impression des bulletins en passant par la préparation des conseils de classe, GEPI est un outil facile et souple d’accès, même pour les utilisateurs réfractaires à l’utilisation de l’outil informatique.

Depuis 2013, je maintiens l’installation de GEPI pour le lycée Scholae à Saint-Hippolyte-du-Fort. L’application est utilisée quotidiennement par la direction, les enseignants, les élèves et les parents d’élèves, pour gérer les notes, les bulletins, les cahiers de textes, les devoirs à faire, les absences, les retards, etc. Le site de mon entreprise fournit une page qui présente les principales fonctionnalités de GEPI, rédigée dans un langage accessible aux non-informaticiens.

Cet article se concentre principalement sur les aspects techniques de GEPI comme les les procédures d’installation, de sécurisation et de mise à jour. Il s’adresse aux administrateurs ayant un minimum d’expérience.

Prérequis

Configuration de SELinux

Étant donné que nous installons GEPI en-dessous de /var/www, tous les fichiers nouvellement créés seront correctement étiquetés httpd_sys_content_t. Rien à signaler de ce côté-là.

GEPI doit pouvoir envoyer des mails via Postfix, ce qu’il faut explicitement autoriser.

# setsebool -P httpd_can_sendmail on

Apache possède les droits d’écriture sur une série de répertoires de l’installation. Ces droits d’écriture seront définis par le biais des permissions Unix classiques, mais il faut également le spécifier du côté de SELinux.

# setsebool -P httpd_unified on

Téléchargement

GEPI peut être récupéré directement sur le serveur grâce au navigateur Links.

$ mkdir -pv webapps/gepi
mkdir: created directory ‘webapps’
mkdir: created directory ‘webapps/gepi’
$ cd webapps/gepi/
$ links https://gepi.mutualibre.org

Suivre le lien Télécharger et récupérer la dernière version stable.

  • gepi-1.7.3-bc28235.tar.gz

Configuration de l’hôte virtuel

Une fois que la structure de répertoires est en place, on peut définir l’hôte virtuel dans la configuration d’Apache.

# /etc/httpd/conf.d/10-gepi.slackbox.fr.conf

# http://gepi.slackbox.fr -> https://gepi.slackbox.fr
<VirtualHost *:80>
  ServerName gepi.slackbox.fr
  Redirect / https://gepi.slackbox.fr
</VirtualHost>

# https://gepi.slackbox.fr
<VirtualHost _default_:443>
  Header always set Strict-Transport-Security \
    "max-age=63072000; includeSubDomains"
  ServerAdmin info@exemple.fr
  DocumentRoot "/var/www/slackbox-gepi/html"
  ServerName gepi.slackbox.fr:443
  SSLEngine on
  SSLCertificateFile /chemin/vers/cert.pem
  SSLCertificateKeyFile /chemin/vers/privkey.pem
  SSLCertificateChainFile /chemin/vers/fullchain.pem
  BrowserMatch "MSIE [2-5]" \
    nokeepalive ssl-unclean-shutdown \
    downgrade-1.0 force-response-1.0
  ErrorLog logs/gepi.slackbox.fr-error_log
  CustomLog logs/gepi.slackbox.fr-access_log common
</VirtualHost>

Installation

Créer la base de données.

# mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.52-MariaDB MariaDB Server

MariaDB [(none)]> create database `slackbox-gepi`;
Query OK, 1 row affected (0.02 sec)

MariaDB [(none)]> grant all on `slackbox-gepi`.* 
    -> to gepiuser@localhost 
    -> identified by '********';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye

GEPI sera installé en-dessous de l’arborescence /var/www/slackbox-gepi. La racine à proprement parler de l’hébergement se situera dans slackbox-gepi/html.

$ sudo mkdir -v /var/www/slackbox-gepi
mkdir: created directory ‘/var/www/slackbox-gepi’
$ sudo chown microlinux:microlinux /var/www/slackbox-gepi/
$ cd /var/www/slackbox-gepi/
$ tar xzf ~/webapps/gepi/gepi-1.7.3-bc28235.tar.gz
$ ls
gepi-1.7.3
$ mv gepi-1.7.3/ html

La plupart des articles de blog et autres tutos sur l’installation de GEPI sont assez généreux avec les droits d’accès de l’installation. L’ensemble des fichiers est attribué à l’utilisateur système qui fait tourner le serveur web (apache ou www-data), avec des droits d’écriture sur la totalité des fichiers et des répertoires.

Nous allons procéder différemment, en attribuant l’installation à l’utilisateur “commun mortel” microlinux. Les droits d’écriture seront attribués uniquement là où cela est strictement nécessaire. Pour les permissions, nous suivons les recommandations officielles adaptées à notre installation. Étant donné qu’il s’agit là d’une tâche quelque peu fastidieuse – qu’il faudra répéter à chaque mise à jour – j’ai écrit un petit script shell pour automatiser tout cela.

#!/bin/bash
# 
# set-gepi-permissions.sh
#
# Définition des permissions d'une installation GEPI

gepipath="/var/www/slackbox-gepi"
gepiroot="${gepipath}/html"
gepiuser="microlinux"
gepigroup="microlinux"
htuser="apache"
htgroup="apache"
writedirs="documents \
           images    \
           secure    \
           photos    \
           backup    \
           temp      \
           mod_ooo   \
           mod_notanet"

printf "Définition des permissions de GEPI...\n"
find ${gepipath}/ -type d -print0 | xargs -0 chmod 0755
find ${gepipath}/ -type f -print0 | xargs -0 chmod 0644
chown -R ${gepiuser}:${gepigroup} ${gepipath}/
for writedir in ${writedirs}; do
  chown -R ${gepiuser}:${htgroup} ${gepiroot}/${writedir}
  find ${gepiroot}/${writedir} -type d -print0 | xargs -0 chmod 0775
  find ${gepiroot}/${writedir} -type f -print0 | xargs -0 chmod 0664
done
chown ${gepiuser}:${htgroup} ${gepiroot}/style_screen_ajout.css*
chmod 0664 ${gepiroot}/style_screen_ajout.css*

exit 0

À partir de là, on peut ouvrir l’URL de GEPI dans un navigateur et cliquer sur Installer la base MySQL.

Installation GEPI

Ici, il suffit de renseigner l’utilisateur MySQL et le mot de passe de connexion.

Installation GEPI

La prochaine étape consiste à sélectionner la base de données créée un peu plus haut.

Installation GEPI

L’installation est terminée. À partir de là, on peut se connecter à l’interface d’administration de GEPI avec l’identifiant admin et le mot de passe azerty. Pour des raisons évidentes, GEPI vous demande de changer ce mot de passe trivial à la première connexion.

Installation GEPI

Mise à jour

Une installation existante de GEPI peut être mise à jour “à chaud” vers la dernière version stable. Dans l’exemple, nous partons d’une installation existante de GEPI dans la version 1.6.8, et nous allons la mettre à jour vers la version 1.7.3, la dernière en date lors de la rédaction de cet article.

La mise à jour des fichiers de GEPI peut s’effectuer par simple écrasement. Pour la définition des permissions, on utilisera le script shell qu’on a utilisé un peu plus haut lors de l’installation.

$ cd /var/www/slackbox-gepi/
$ tar xvzf ~/webapps/gepi/gepi-1.7.3-bc28235.tar.gz
$ ls
gepi-1.7.3 html
$ alias cp
alias cp='cp -i'
$ unalias cp
$ cp -R gepi-1.7.3/* html/
$ alias cp='cp -i'
$ sudo /usr/local/sbin/set-gepi-permissions.sh
[sudo] password for microlinux:
Définition des permissions de GEPI...

À partir de là, on peut ouvrir une session et cliquer sur Mettre à jour pour effectuer une mise à jour de la base de données.

Mise à jour GEPI

Voilà ce qu’on obtient si tout s’est bien passé.

Mise à jour GEPI

Nous utilisons désormais la dernière version de GEPI.

Mise à jour GEPI

Liens

Ce contenu a été publié dans CentOS, Documentation Microlinux, avec comme mot(s)-clé(s) , . Vous pouvez le mettre en favoris avec ce permalien.

Une réponse à Hébergement GEPI sous CentOS

  1. Ping : Hébergement GEPI sous CentOS - My Tiny Tools

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.