En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies pour assurer le bon fonctionnement de nos services.
En savoir plus

Usages TICE

Installation Linux et ensuite GEPI

Publié le lundi 8 juin 2015 08:51 - Mis à jour le jeudi 27 août 2015 11:25

Installation Linux et ensuite GEPI

Installation de DEBIAN : 1

Installation de MySQL : 1

Déplacement des bases de données mysql : 2

Pour les versions d'Ubuntu utilisant Apparmor (notamment Ubuntu 10.04 LTS), il vous faut modifier le fichier de configuration MySQL dans Apparmor. 2

Problème d'accès à MySQL après une mise à jour : 2

Sauvegarde de la base gepi : 2

Nettoyage du stock de sauvegarde : 3

Installation de GEPI :service 3

Déplacement des sites web sur la partition "/home" : 3

Pour faire fonctionner l'autentification SSO : 4

Configuration dans GEPI : 4

Forcer la connexion sur GEPI en https mais en laissant l'accès à http: 5

Serveur ssh sur la DMZ : 5

Mise à jour GEPI sur la DMZ de Carnot: 5

Copier les fichier extrais de l'archive. 5

Récupérer les fichier de configuration suivant : 5

./gepi/secure/config_cas.inc.php
./gepi/secure/connect.inc.php 5

Récupérer les photos depuis le dossier ./gepi/photos/, pour les élèves et éventuellement les personnels : 5

./gepi/photos/eleves/*
./gepi/photos/personnels/* 5

Fichier de configuration de automysqlbackup : 6

 

Installation de DEBIAN :

Séparer la partition racine "/" (entre 15 et 30 Go en fonction de la capacité de votre disque dur) de la partition "/home" (le reste du disque).

Prévoir le serveur Web Apache.
Incorporer l'utilisateur/Administrateur dans les groupes vboxsf et www-data et redémarrer la session.
Pour que le SSO fonctionne, Installer "php5-curl".

Installation de MySQL :

Voir DEBIAN + Lamp sur le site de debian facile.
Attention de configurer php5 pour laisser importer de gros fichier dans phpmyadmin.
/etc/php5/apache2/php.ini
memory_limit = 128M (supérieur à upload_max_filesize)
et éventuellement :

upload_max_filesize = 100M
post_max_size = 110M (supérieur à upload_max_filesize)

 

Les réglages php (issu de gepi menu : "accueil/gestion générale/Configuration du serveur"):

  • La mémoire maximale allouée à php est de 128M (memory_limit).

  • La taille maximum d'une variable envoyée à Gepi ne doit pas dépasser 32M (post_max_size).

  • Le temps maximum alloué à php pour traiter un script est de 90 secondes (Cette valeur devrait suffire dans la grande majorité des cas) (max_execution_time).

  • La taille maximum d'un fichier envoyé à Gepi est de 32M (upload_max_filesize).

  • Il peut être uploadé au maximum 20 fichier(s) à la fois (max_file_uploads).

  • La durée maximum de session est réglée à 18000 secondes, soit un maximum de 300 minutes (session.gc_maxlifetime dans le fichier php.ini).

Déplacement des bases de données mysql :

Arrêter MySQL :

sudo service mysql stop

Déplacer le répertoire des bases de données :

sudo mv /var/lib/mysql /home/mysql

Le déplacement par 'mv' permet de ne pas modifier les droits originaux.

Créer un lien symbolique afin de ne pas "casser" les fichiers de configuration originel de MySQL :

sudo ln -s /home/mysql /var/lib/mysql

S'assurer que l'utilisateur 'mysql' est bien le propriétaire de ce lien symbolique :

sudo chown -h mysql:mysql /home/mysql

Pour les versions d'Ubuntu utilisant Apparmor (notamment Ubuntu 10.04 LTS), il vous faut modifier le fichier de configuration MySQL dans Apparmor.

Ouvrir le fichier /etc/apparmor.d/usr.sbin.mysqld et trouver les deux lignes suivantes :

  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,

et de les modifier en :

  /home/mysql/ r,
  /home/mysql/** rwk,

On relance la configuration d'Apparmor :

sudo service apparmor reload

On relance MySql :

sudo service mysql start

Problème d'accès à MySQL après une mise à jour :

Vérifier la config de apparmor dans le fichier de configuration /etc/apparmor.d/usr.sbin.mysqld

Vérifier que tous les fichiers contenu dans le dossier "mysql" appartiennent à l'utilisateur mysql.

Sauvegarde de la base gepi :

En mode root dans une console :
Créer un dossier de sauvegarde, ici celui choisi est "/home/DATAS/sauvegarde-base-gepi" :

mkdir /home/DATAS/sauvegarde-base-gepi


 

Lui attribuer "root" comme propriétaire :

chown root:root /home/DATAS/sauvegarde-base-gepi

Attriber les droits suivant :

chmod 750 /home/DATAS/sauvegarde-base-gepi

Installer le paquet automysqlbackup

aptitude install automysqlbackup

Pendant l'installation on met pas de config lorsqu'il est demandé le type de mail

Éditer le fichier de configuration se trouvant dans /etc/default/automysqlbackup :

Commenter cette ligne en ajoutant un "#"

# DBNAMES=`mysql --defaults-file=/etc/mysql/debian.cnf --execute="SHOW DATABASES" | awk '{print $1}' | grep -v ^Database$ | grep -v ^mysql$ | tr \\\r\\\n ,\ ` 

La remplacer par celle-ci :

DBNAMES="gepi" 


 

Commenter cette ligne en ajoutant un "#"

# BACKUPDIR="/var/lib/automysqlbackup" 


 

La remplacer par celle-ci :

BACKUPDIR="/home/DATAS/sauvegarde-base-gepi" 


 

Enregistrer le fichier

Fréquence :

Dans le fichier /etc/crontab, est notée la fréquence de lancement des sauvegardes, vous pouvez modifier l'horaire.

Nettoyage du stock de sauvegarde :

A priori, il n'y a rien à programmer, le nettoyage du stock se fait par "automysqlbackup".

Pour éviter d'être envahi de fichier de sauvegarde il faut supprimer les fichiers daily et weekly au bon moment à l'aide de la table "crontab" de root.

Pour Supprimer les sauvegardes vieilles de plus de 7 jours dans le dossier de sauvegarde journalier, on ajoute à la crontab :

find /home/DATAS/sauvegarde-base-gepi/daily/ -type f -mtime +7 -delete

Installation de GEPI :service

Copier les fichiers de GEPI dans /var/www et donner GEPI et ses sous-répertoires à l'utilisateur "www-data" avec la commande "sudo chown -R www-data:www-data GEPI".

Déplacement des sites web sur la partition "/home" :

Activer le module userdir

sudo a2enmod userdir

Le fichier suivant contient sa configuration /etc/apache2/mods-available/userdir.conf

Son contenu est le suivant :

<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory /home/*/www>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>
</IfModule>

La directive UserDir désigne le nom du dossier qui est contenu dans le dossier personnel de l'utilisateur si une url du type ~utilisateur est reçue. Vous pouvez donc la changer si vous voulez que ça soit autre chose que la valeur par défaut.

Redémarrer apache

Créer un dossier nommé "www" dans votre home et essayer, ça devrait marcher :)

Sur Ubuntu 11.04, les droits d'accès au répertoire /home/user sont insuffisants. Vous risquez d'avoir une erreur 403 "permission denied". SI le user est john, faire la manip suivante :

chgrp www-data /home/john/
chmod 750 /home/john/

Sur Ubuntu 10.04 (Lucid) et 11.04 l'exécution en php est désactivée par défaut avec ce module. Pour changer ça et éviter que le navigateur télécharge le code php directement, éditer le fichier /etc/apache2/mods-enabled/php5.conf et commentez les lignes comme ci dessous :

[..]
#    <IfModule mod_userdir.c>
#        <Directory /home/*/public_html>
#            php_admin_value engine Off
#        </Directory>
#    </IfModule>
[..]

 

Pour faire fonctionner l'autentification SSO :

Créer le fichier "config_cas.inc.php" dans le dossier "gepi/secure" de puis le fichier "config_cas-modele.inc.php" situé dans le dossier "gepi/secure/modeles". Modifier les attributs suivants à l'intérieur :
$cas_host = "cas.entmip.fr"; // l'hôte du serveur CAS
$cas_port = 443; // Le port
$cas_root = ' ';
$cas_use_logout = true

Configuration dans GEPI :

Voir le fichier "ENT_Ressources_pedago_Gepi2011.pdf" dans l'ENT vous le trouverez dans "Pôle d'appui/Archives/intégration SSO dans GEPI" ou bien dans le dossier où se trouve cette doc.

Forcer la connexion sur GEPI en https mais en laissant l'accès à http:

Ajouter au fichier login.php dans /var/www/gepi

  // securite obligation d'utiliser le https
  if($_SERVER['SERVER_PORT'] != 443)
  {
      header('Location: https://url_de_ton_site/gepi/');
      exit;
  }

Activer le module ssl avec la commande :

"a2enmod ssl"

Activer le site default-ssl avec la commande :

"a2ensite default-ssl"

Relancer apache2 avec la commande :

"service apache2 restart"

Serveur ssh sur la DMZ :

Authentification par clé public et mot de passe :

ssh gepiuser@192.168.222.60


 

Si votre machine est configurée comme un hôte de confiance par clé public vous vous connecterez directement sinon il faudra entrer le mot de passe de "gepiuser".

Mise à jour GEPI :

ATTENTION : faire une sauvegarde des fichiers et de la base, ça ne sert jamais mais une mise à jour n'est jamais 100 % garantie.De toute façon il y a une sauvegarde journalière qui se trouve dans /home/DATAS/GEPI/sauvegarde-base-gepi sur le serveur linux.

Télécharger la dernière version. Aller dans le dossier de téléchargement avec un navigateur de fichier.

Mise à jour automatique:

Faites un clic droit et choisir "Ouvrir dans un terminal".
Tapez "sudo ./Mise-a-jour-automatique-de-GEPI.sh"

Mise à jour manuel pour ceux qui veulent comprendre ce qui se passe:

Dans le dossier "Téléchargement" cliquez sur l'archive "quelque-chose.gz". L'extracteur se lance automatiquement et vous demande d'extraire. Ne rien changer pour le chemin de destination, il extraira au même endroit. Fermer l'extracteur puis dans ce même dossier ouvrir un terminal.
 

Ensuite tapez :
"sudo su"

Tapez le mot de passe de gepiuser.
Puis tapez l'on va attribuer au serveur web les fichier de gepi:
"chown -R www-data:www-data gepi-x.x.x"
Remplacez les x.x.x par ce que vous avez comme nom de dossier.

Puis faire une copie du GEPI actuel avec cette commande:
"cp -R /home/www/gepi /home/www/gepi-back"

Ensuite écraser les fichiers sur le serveur web avec les nouveaux fichiers sur le serveur :
"cp -Ru ./gepi-x.x.x/* /home/www/gepi/."
Le point à la fin est essentiel. Seuls les nouveaux fichiers seront écrasés, les fichiers de configuration ne seront pas éffacés.

Pour rappel les fichiers de configurations sont :

./gepi/secure/config_cas.inc.php
./gepi/secure/connect.inc.php

Récupérer les photos depuis le dossier ./gepi/photos/, pour les élèves et éventuellement les personnels :

./gepi/photos/eleves/*
./gepi/photos/personnels/*

ANNEXE :

Fichier de configuration de automysqlbackup :

# By default, the Debian version of automysqlbackup will use:

# mysqldump --defaults-file=/etc/mysql/debian.cnf

# but you might want to overwrite with a specific user & pass.

# To do this, simply edit bellow.


 

# Username to access the MySQL server e.g. dbuser

#USERNAME=`grep user /etc/mysql/debian.cnf | tail -n 1 | cut -d"=" -f2 | awk '{print $1}'`


 

# Username to access the MySQL server e.g. password

#PASSWORD=`grep password /etc/mysql/debian.cnf | tail -n 1 | cut -d"=" -f2 | awk '{print $1}'`


 

# Host name (or IP address) of MySQL server e.g localhost

DBHOST=localhost


 

# List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3"

# Note that it's absolutely normal that the db named "mysql" is not in this

# list, as it's added later by the script. See the MDBNAMES directives below

# in this file (advanced options).

# This is ONLY a convenient default, if you don't like it, don't complain

# and write your own.

# The following is a quick hack that will find the names of the databases by

# reading the mysql folder content. Feel free to replace by something else.

# DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ `

# This one does a list of dbs using a MySQL statement.

# DBNAMES=`mysql --defaults-file=/etc/mysql/debian.cnf --execute="SHOW DATABASES" | awk '{print $1}' | grep -v ^Database$ | grep -v ^mysql$ | tr \\\r\\\n ,\ `

DBNAMES="gepi"


 

# Backup directory location e.g /backups

# Folders inside this one will be created (daily, weekly, etc.), and the

# subfolders will be database names. Note that backups will be owned by

# root, with Unix rights 0600.

# BACKUPDIR="/var/lib/automysqlbackup"

BACKUPDIR="/home/DATAS/sauvegarde-base-gepi"

 

# Mail setup

# What would you like to be mailed to you?

# - log : send only log file

# - files : send log file and sql files as attachments (see docs)

# - stdout : will simply output the log to the screen if run manually.

# - quiet : Only send logs if an error occurs to the MAILADDR.

MAILCONTENT="quiet"


 

# Set the maximum allowed email size in k. (4000 = approx 5MB email [see

# docs])

MAXATTSIZE="4000"


 

# Email Address to send mail to? (user@domain.com)

MAILADDR="root"


 

# ============================================================

# === ADVANCED OPTIONS ( Read the doc's below for details )===

#=============================================================


 

# List of DBBNAMES for Monthly Backups.

MDBNAMES="mysql $DBNAMES"


 

# List of DBNAMES to EXLUCDE if DBNAMES are set to all (must be in " quotes)

DBEXCLUDE=""


 

# Include CREATE DATABASE in backup?

CREATE_DATABASE=yes


 

# Separate backup directory and file for each DB? (yes or no)

SEPDIR=yes


 

# Which day do you want weekly backups? (1 to 7 where 1 is Monday)

DOWEEKLY=6


 

# Choose Compression type. (gzip or bzip2)

COMP=gzip

 

# Compress communications between backup server and MySQL server?

COMMCOMP=no


 

# Additionally keep a copy of the most recent backup in a seperate

# directory.

LATEST=no


 

# The maximum size of the buffer for client/server communication. e.g. 16MB

# (maximum is 1GB)

MAX_ALLOWED_PACKET=


 

# For connections to localhost. Sometimes the Unix socket file must be

# specified.

SOCKET=


 

# Command to run before backups (uncomment to use)

#PREBACKUP="/etc/mysql-backup-pre"


 

# Command run after backups (uncomment to use)

#POSTBACKUP="/etc/mysql-backup-post"