Outil de recherche sur le site :

Salles pédagogiques Serveur web et base de données

Présentation du serveur pédagogique

Le serveur pédagogique pedago.univ-avignon.fr est destiné à être utilisé pour les TP de conception web et/ou de base de données.

Sur ce serveur, vous pouvez utiliser les services suivants :
  • serveur web Apache httpd + PHP avec une adresse de la forme https://pedago.univ-avignon.fr/~identifiant_identité_numérique
  • base de données PostgreSQL avec un schéma dédié pour vos données
  • phpPgAdmin pour les enseignants
  • base de données MariaDB (MySQL)
  • nodejs
  • mongoDB
  • flex / bison
  • gcc / gdb
  • bc
  • git

Programmes sur le serveur

Ce serveur est installé sous Debian 11 Bullseye et possède les programmes suivants :
  • Apache : 2.4.56
  • PHP : 7.4
  • PostgreSQL : 14
  • MariaDB : 10.5.19
  • MongoDB : 7.0.1
  • NodeJS : 18.17.1
  • flex : 2.6.4 / bison : 3.7.5
  • gcc 10.2.1 / gdb 10.1
  • bc 1.07
  • git 2.30.2

Pour le reste des programmes, vous pouvez interroger le site https://www.debian.org/distrib/packages ou regarder directement sur le serveur. La version de PHP et son paramétrage sont accessibles dynamiquement.

En tant qu'étudiant, si vous souhaitez utiliser des programmes qui ne sont pas présents, vous devez en parler avec vos enseignants. Si l'enseignant juge que la demande est pertinente dans le cadre des TPs, il se chargera de faire la demande d'installation du programme.

Connexion au serveur et données personnelles

Le serveur pedago.univ-avignon.fr est uniquement accessible par le réseau de l'Université.  Depuis l'extérieur (chez vous, par exemple), vous devez donc utiliser le VPN.
 
Lorsque vous vous connectez sur le serveur par shell SSH, vous êtes positionné par défaut à la racine votre répertoire personnel Ubuntu.
L'adresse est pedago.univ-avignon.fr.
L'identifiant et le mot de passe sont ceux de votre identité numérique (ceux que vous utilisez sur l'ENT).
Précisez votre identifiant à votre client SSH. Exemple avec Ubuntu GNU/Linux : ssh VOTRE_IDENTIFIANT_ICI@pedago.univ-avignon.fr.
Attention : votre identifiant s'écrit en lettres minuscules.
 
Lors de la 1ère connexion SSH au serveur, vos identifiants PostgreSQL et MySQL sont générés et vous sont envoyés par mail. Les identifiants des étudiants sont supprimés le 1er septembre de chaque année.

Apache : fonctionnement des sites web personnels

Une fois connecté en SSH sur le serveur, vous êtes dans votre répertoire personnel Ubuntu (aussi appelé home directory).

Le répertoire « public_html » est le répertoire racine de votre site web personnel (il suffit de le créer s'il n'existe pas). Il doit se trouver à la racine de vos données itinérantes (cd ~/Donnees_itinerantes_depuis_serveur_pedagogique pour y vous rendre) et il doit avoir les permissions 755 (rwx r-x r-x).
 
Pour créer votre répertoire « public_html » s'il n'existe pas, utilisez les commandes suivantes :
cd ~/Donnees_itinerantes_depuis_serveur_pedagogique
mkdir public_html
chmod 755 public_html
 
Votre site web personnel est accessible par l'adresse https://pedago.univ-avignon.fr/~identifiant_identité_numérique/. L'identifiant de votre identité numérique est celui que vous utilisez sur l'ENT.

Base de données : PostgreSQL

Les questions suivantes concernent l'utilisation de la base de données PostgreSQL.

La base de données pour la pédagogie est : etd. Elle contient tous les objets des utilisateurs (étudiants et enseignants).
 
La séparation des objets des différents propriétaires se fait grâce aux schémas. Ainsi, 2 utilisateurs peuvent avoir chacun une table avec le même nom, chacun dans leur schéma. Il faut donc éviter d'utiliser le schéma public.

Lors de la première connexion SSH sur le serveur, le compte de l'utilisateur est créé (rôle + schéma).

Il existe une autre base pour un enseignement particulier avec un unique utilisateur : coursSN.

PostgreSQL : obtention du mot de passe

Lors de la première connexion SSH sur le serveur, le compte de l'utilisateur est créé (rôle + schéma).
Le rôle possède un mot de passe qui est envoyé par mail à l'utilisateur sur son adresse de l'Université.

Ce mot de passe n'est pas demandé dans le cas d'une connexion en local, par exemple via la commande psql .

Le mot de passe est nécessaire dans le cas d'une connexion par le réseau, par exemple lorsqu'un script php doit se connecter à la base.

PostgreSQL : comment réinitialiser mon mot de passe ?

En cas de perte du mot de passe du compte PostgreSQL, il suffit d'exécuter cette commande sur le serveur pédagogique via une connexion SSH :

sudo pgresetpwd

Ne pas oublier de mettre « sudo ».

Comme dans le cas de la première connexion, le mot de passe est envoyé par mail.

PostgreSQL : comment utiliser la base

Techniquement, la base est accessible en local (par socket unix) ou par le réseau. Le mot de passe est requis uniquement avec l'accès par le réseau.
Par le réseau, les connexions sont autorisées depuis :
  • la machine elle-même (localhost) ;
  • les salles pédagogiques de l'Agroparc et du centre-ville ;
  • le wifi et le nomade ;
  • le VPN ;
  • le réseau historique du CERI (194.57.216.0/24) ;

En pratique, l'utilisation de l'outil psql, lorsqu'on est sur le serveur pedago, ne requiert pas le mot de passe. Il suffit de taper la commande : psql etd
 
Dans ce cas, on accède donc à la base par une socket unix.

Pour les outils utilisant le réseau pour atteindre la base de données, les informations suivantes sont nécessaires.
La base à utiliser : etd.
Le nom du serveur : pedago.univ-avignon.fr.
Le nom de l'utilisateur : identifiant de votre identité numérique.
Le mot de passe est celui envoyé par mail.

Vous possédez un schéma dont le nom correspond à l'identifiant de votre identité numérique. Vous seul pouvez accéder aux objets de votre schéma. il est donc conseillé de créer vos objets dans votre schéma plutôt que dans le schéma public. Ainsi, vous êtes assuré que les autres utilisateurs ne puissent pas accéder à vos données et de pouvoir les appeler comme vous voulez.

PostgreSQL : annuler une requête

On constate parfois l'impossibilité d'accéder à des objets (par exemple une table) lors de l'exécution d'une requête (par exemple un UPDATE).
Cela est souvent le symptôme d'une requête en cours d'exécution et qui a posé un verrou sur l'objet en question.
 
Pour le vérifier :

SELECT * FROM pg_stat_activity where usename='LOGIN' order by backend_start;

en mettant la bonne valeur pour LOGIN.
 
Les requêtes en cours s'afficheront avec les plus anciennes en 1er. Les requêtes Postgres sont le résultat d'un ou plusieurs processus système, la colonne PID représente donc un PID système. On peut obtenir d'autres infos le⋅s concernant avec les outils systèmes habituels (top, ps, …).
 
Lorsque la requête bloquante est identifiée, on peut l'annuler par la commande suivante, son propriétaire ayant les permissions nécessaires pour le faire :
 
SELECT pg_cancel_backend(PID);
 
en mettant la bonne valeur pour PID.

PostgreSQL : suppression des données de la base

Une fois par an (le 1er septembre), la base de données etd est nettoyée.
Les actions suivantes sont faites :
  • tous les comptes des étudiants sont supprimés
  • les comptes des enseignants qui n'existent plus dans l'annuaire LDAP sont supprimés
  • les données appartenant aux comptes supprimés sont aussi supprimées
Aucune sauvegarde n'est effectuée.

PostgreSQL : phpPgAdmin, une interface web d'administration

Ce serveur propose une interface web pour gérer ses données dans une base de données PostgreSQL. Il s'agit de phpPgAdmin accessible à l'adresse suivante :
https://pedago.univ-avignon.fr/phppgadmin/

Elle nécessite une authentification (identifiant + mot de passe de votre identité numérique / ENT) et n'est accessible que par les enseignants.

Base de données : MySQL

Les questions qui suivent concernent l'utilisation de la base de données MySQL.

Il y a une base par utilisateur. L'identifiant est celui de votre identité numérique (vous l'utilisez également sur l'ENT).

Lors de la première connexion SSH sur le serveur, la base de l'utilisateur est créée.

MySQL : obtention du mot de passe

Lors de la première connexion SSH sur le serveur, la base de l'utilisateur est créée ainsi qu'un compte MySQL avec tous les privilèges sur cette base.
 
Le mot de passe du compte MySQL est envoyé par mail à l'utilisateur sur son adresse de l'Université.

Le mot de passe est toujours demandé pour se connecter à la base, même en local.

MySQL : comment réinitialiser mon mot de passe ?

En cas de perte de mot de passe du compte MySQL, il suffit d'exécuter cette commande sur le serveur pédagogique via une connexion SSH :

sudo myresetpwd

Ne pas oublier de mettre « sudo ».

Comme dans le cas de la première connexion, le mot de passe est envoyé par mail.

MySQL : comment utiliser la base

Techniquement, la base est accessible uniquement par le réseau (local et distant). Le mot de passe est toujours requis.
Par le réseau, les connexions sont autorisées depuis :
  • les connexions en local (localhost) ;
  • les salles pédagogiques (centre-ville et Agroparc) ;
  • le wifi et le nomade ;
  • le VPN ;
  • le réseau historique du CERI (194.57.216.0/24).

En pratique, lorsqu'on est sur le serveur pedago, on utilise l'outil mysql. Il suffit de taper la commande : mysql -p votre_identifiant
Dans ce cas, on accède donc à sa base personnelle par localhost.

Pour les autres outils, les informations suivantes sont nécessaires.
La base à utiliser : votre_identifiant.
Le nom du serveur : pedago.univ-avignon.fr.
Le nom de l'utilisateur : votre_identifiant.
Le mot de passe est celui envoyé par mail.

Vous possédez une base de données pour votre usage unique. Vous seul pouvez accéder à cette base grâce à votre mot de passe. Ainsi, vous êtes assuré que les autres utilisateurs ne peuvent pas accéder à vos données.

MySQL : suppression des bases de données

Une fois par an (le 1er septembre), les bases de données de l'année sont suprpimées.
Les actions suivantes sont effectuées :

  • tous les comptes des étudiants sont supprimés ;
  • les comptes des enseignants qui n'existent plus dans l'annuaire LDAP sont supprimés
  • les bases et les données appartenant aux comptes supprimés sont aussi supprimées

Aucune sauvegarde n'est effectuée.

Base de données dédiée à un projet étudiant

Certains projets conduits par un enseignant et réalisés par des étudiants peuvent s'étaler sur plusieurs années universitaires et peuvent être réalisés par plusieurs étudiants.

Dans ce cas, la DOSI peut créer une base de données dédiée à ce projet sur le serveur pédagogique. Cette base ne sera pas liée à une identité numérique. Il appartient à l'enseignant de demander la création (puis le nettoyage après usage) de cette base de données via une demande d'intervention.

PostgreSQL et MySQL : Adminer, une interface web d'administration

Ce serveur propose une interface web pour gérer ses données dans une base de données PostgreSQL ou MySQL. Il s'agit de Adminer accessible à l'adresse suivante :
https://pedago.univ-avignon.fr/adminer

Elle nécessite une première authentification (identifiant + mot de passe de votre identité numérique / ENT) et n'est accessible que par les enseignants.