TD • nginx et MariaDB
| Champ | Valeur |
|---|---|
| Auteur·e | Cédric Prin |
| Édition | 2025-10-15 |
| Durée | 2 sessions |
| Taille des équipes | 1-2 personnes |
| Correction | correction pair à pair en salle |
Barème
| Critère | Points |
|---|---|
| Mise à jour du système et installation de Nginx | 1 |
| Démarrage du service Nginx et vérification de la page par défaut | 1 |
Création du dossier web et du fichier index.html |
1 |
| Rédaction du fichier de configuration et activation du site | 3 |
Test de configuration (nginx -t) et rechargement du service |
2 |
Gestion des permissions (création de groupe, chown, chmod) |
1 |
| Création du lien symbolique dans le home | 1 |
| Installation et démarrage de MariaDB | 2 |
Exécution de mysql_secure_installation |
2 |
Création de la base de données et gestion des utilisateurs (CREATE USER, GRANT, FLUSH PRIVILEGES) |
3 |
Création de table (CREATE TABLE) et insertion de données |
2 |
Requêtes SQL de base (SELECT *) et nettoyage de la base (TRUNCATE, DROP) |
1 |
| Total | 20 |
Règlement
La réalisation de cet exercice est assujettie aux règles en vigueur dans l’école en matière de triche. Tricher vous expose à de graves sanctions.
Synopsis
Dans cette activité, vous devrez suivre une procédure détaillée pour installer et configurer Nginx (serveur web) et MariaDB (système de gestion de bases de données). L’objectif est de les familiariser avec les étapes d’installation, de vérification et de configuration de ces deux services essentiels sur un système Linux.
L’activité est conçue pour être réalisée sur les distributions Ubuntu ou Fedora, en tenant compte des différences entre leurs gestionnaires de paquets (apt et dnf).
Après avoir terminé leur propre installation, vous devrez vérifier la configuration d’un camarade.
Installation et configuration de Nginx
Mettre à jour la liste des paquets puis installe toutes les mises à jour disponibles :
# Sur ubuntu
sudo apt update
sudo apt upgrade
# Sur fedora
sudo dnf check-update
sudo dnf upgrade --refresh
Installer Nginx :
# Sur ubuntu
sudo apt install nginx
# Sur fedora
sudo dnf install nginx
Vérification du bon fonctionnement de Nginx
Lancer Nginx :
sudo systemctl start nginx
Dans un navigateur, écrivez http://localhost : la page devrait charger avec :
- pour ubuntu, le titre “Welcome to nginx!”
- pour fedora, le titre “Fedora Webserver Test Page”
Personnalisation de la page d’accueil
Créer le dossier qui va contenir les fichiers du site web :
sudo mkdir -p /var/www/my_site/html
Créer le fichier index.html :
sudo nano /var/www/my_site/html/index.html
Exemple du contenu :
<h1>Welcome to my site!</h1>
Créer le fichier de configuration :
# Sur ubuntu
sudo nano /etc/nginx/sites-available/my_site.conf
# Sur fedora
sudo nano /etc/nginx/conf.d/my_site.conf
Y écrire :
server {
listen 80;
server_name my_site;
root /var/www/my_site/html;
index index.html;
autoindex on;
}
Sur Ubuntu, supprimer le fichier de configuration par défaut :
sudo rm /etc/nginx/sites-enabled/default
Sur ubuntu, ajouter la configuration créée précédemment :
sudo ln -s /etc/nginx/sites-available/my_site.conf /etc/nginx/sites-enabled/
Vérifier la validité de la configuration créée (corriger les erreurs si besoin) :
sudo nginx -t
Recharger Nginx :
sudo systemctl reload nginx
Dans un navigateur, écrivez http://localhost : la page devrait charger avec le contenu du fichier index.html créé.
Gestion des droits d’accès au contenu web
Créer un groupe :
sudo groupadd my-site
Ajouter l’utilisateur connecté au groupe :
sudo usermod -aG my-site $USER
Donner la possession du dossier du site web à l’utilisateur connecté et au groupe :
sudo chown -R $USER:my-site /var/www/my_site/html/
Définir les droits pour ce dossier :
sudo chmod -R 2775 /var/www/my_site/html/
Raccourci
Créer un lien symbolique :
ln -s /var/www/my_site/html/ ~/site-web
La commande cat ~/site-web/index.html doit afficher le contenu de votre index.
Installation et sécurisation de MariaDB
Installer MariaDB :
# Sur ubuntu
sudo apt install mariadb-server
# Sur fedora
sudo dnf install mariadb-server
Lancer MariaDB :
sudo systemctl start mariadb
Installation :
sudo mysql_secure_installation
- appuyer sur entrée à :
Enter current password for root - répondre
nà :Switch to unix_socket authentification - répondre
nà :Change the root password - appuyer sur entrée aux 4 questions qui suivent.
Premiers pas et commandes de base
Se connecter en local en tant que root :
sudo mysql
Créer une database :
CREATE DATABASE database1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Créer un utilisateur :
CREATE USER 'user1'@'localhost' IDENTIFIED BY '1234';
Donner les droits à l’utilisateur :
GRANT ALL PRIVILEGES ON database1.* TO 'user1'@'localhost';
Appliquer les droits :
FLUSH PRIVILEGES;
Se déconnecter :
exit
Se connecter en tant que user1 :
mysql -u user1 -p
Utiliser database1 :
USE database1;
Créer la table fruits (dans database1) :
CREATE TABLE fruits (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
color VARCHAR(30)
);
La table fruits a comme champs :
- id :
INT: un nombre entierAUTO_INCREMENT: qui s’incrémente automatiquementPRIMARY KEY: clé unique pour chaquerow
- name :
VARCHAR(50): une chaine de caractères de maximum 50 caractèresNOT NULL: qui ne peut pas êtreNULL(doit obligatoirement être défini)
- color :
VARCHAR(30): une chaine de caractères de maximum 30 caractères
Insérer deux nouvelles lignes (rows) :
INSERT INTO fruits (name, color) VALUES ('Banana', 'Yellow');
INSERT INTO fruits (name) VALUES ('Apple');
Sélectionner toute la table :
SELECT * FROM fruits;
Wipe une database :
SET FOREIGN_KEY_CHECKS=0;
-- supprimer chaque table de la 'database' (il y en a qu'une seule)
TRUNCATE TABLE fruits;
-- puis :
SET FOREIGN_KEY_CHECKS=1;
Supprimer la database :
DROP DATABASE database1;