Installation et configuration d’un serveur web : Ce qu'il faut savoir. Définition : ensemble des opérations visant à déployer, paramétrer et exploiter un serveur HTTP (logiciel Apache dans ce TP) sur un système Debian afin de servir des contenus via les protocoles HTTP/HTTPS. La maîtrise de ces notions est essentielle pour administrer l'hébergement d'un site au sein d'une PME, diagnostiquer des incidents liés aux modules ou à la configuration, et automatiser les mises à jour de paquets. Ce document TP inclut les commandes pratiques et un rendu de travaux ; un exemplaire PDF gratuit est disponible pour consultation et téléchargement.

Ce support de cours est disponible en téléchargement gratuit au format PDF pour un usage hors-ligne. Pour obtenir le fichier et consulter le TP administration système PDF, utilisez le lien fourni sur la plateforme pédagogique ou le dépôt de la Licence Professionnelle Nice–Sophia.

🎯 Ce que vous allez apprendre

  • Installation d'Apache via les paquets Debian — mise à jour du système avec apt-get update / apt-get upgrade et installation du paquet apache2, identification de version et comparaison avec une installation depuis les sources.
  • Gestion du service et des signaux — contrôle du démon (apache2ctl -k start|stop|graceful|restart), scripts Debian (/etc/init.d/apache2, service apache2) et vérifications process.
  • Lecture et modification des configurations — navigation dans /etc/apache2/, différences apache2.conf / httpd.conf, sauvegarde, édition et test de syntaxe (apache2ctl -t).
  • Modules et chargement dynamique — repérage des modules (apache2ctl -l), usage de LoadModule et blocs conditionnels pour activer/désactiver des fonctionnalités sans recompiler.
  • Exploitation pratique via machine virtuelle — accès SSH sécurisé, transfert de fichiers, bonnes pratiques système (changer mot de passe, config clavier), exercices pratiques et consignes de rendu (.zip).
  • Base de données et interface — installation minimale de MySQL/MariaDB et PHPMyAdmin, gestion utilisateurs et export/import de jeux de données.

Comprendre l'architecture Client-Serveur

Le modèle client-serveur décrit le dialogue entre un client (souvent un navigateur) et un serveur HTTP (ici Apache). Le client émet une requête HTTP vers une URL ; le serveur la reçoit, la traite (accès au système de fichiers, exécution de scripts, authentification) puis renvoie une réponse HTTP contenant un code d'état, des en-têtes et éventuellement un corps (HTML, JSON, fichier). Ce processus implique la résolution DNS, l'établissement d'une connexion TCP/TLS et le respect du protocole HTTP pour la négociation des méthodes (GET, POST, etc.). Comprendre ce flux facilite le diagnostic des erreurs (mauvaises réponses 4xx/5xx), l'optimisation des performances et la mise en place de règles de sécurité au niveau des VirtualHost.

Le Stack LAMP (Linux, Apache, MySQL, PHP)

Ce TP permet de monter une brique essentielle d'un environnement LAMP : Linux (Debian) pour l'hôte, Apache pour le serveur HTTP, MySQL/MariaDB pour la gestion des données et PHP pour la logique applicative. PHPMyAdmin est présenté comme interface d'administration pour les bases et sa configuration doit s'inscrire dans le VirtualHost Apache approprié tout en limitant les droits des comptes de base de données. La séparation claire des rôles (système, serveur web, moteur BD, moteur de scripts) facilite la maintenance, les mises à jour et le durcissement des services en production.

📑 Sommaire du document

  • Introduction
  • Installation
  • Configuration Apache
  • Modules et extensions
  • Sécurisation (HTTPS et pare-feu)
  • Base de données et PHPMyAdmin
  • TP pratique et rendu
  • Annexes et références

💡 Pourquoi choisir ce cours ?

Rédigé par Sophia G. Rey et utilisé dans le cadre de la Licence Professionnelle Nice–Sophia, ce TP privilégie la pédagogie par la pratique : machine virtuelle fournie, commandes opérationnelles et consignes claires de rendu. Les procédures détaillées pour l'administration via paquets Debian, les scripts système et les vérifications (apache2ctl -t, apache2ctl -l) facilitent l'application en contexte professionnel et la préparation d'exercices de mise en production.

👤 À qui s'adresse ce cours ?

  • Public cible : étudiants en licence professionnelle ou techniciens systèmes souhaitant déployer et administrer un serveur Apache sur Debian dans une PME ou en laboratoire.
  • Prérequis : connaissances de base Linux (sudo, éditeurs en ligne de commande), familiarité SSH et notions HTTP/HTML, et gestionnaires de paquets Debian (apt).

❓ Foire Aux Questions (FAQ)

Comment vérifier la syntaxe des fichiers de configuration avant de redémarrer Apache ?

Exécuter apache2ctl -t pour vérifier la syntaxe et relire /etc/apache2/apache2.conf et /etc/apache2/envvars. Corriger les directives signalées (chemins de modules, PidFile) avant tout redémarrage.

Quelle est la différence opérationnelle entre graceful et restart ?

graceful permet aux processus enfants d'achever leurs requêtes en cours avant remplacement ; restart termine immédiatement les enfants et relance la génération, entraînant une interruption plus nette des connexions actives.

Comment sécuriser l'accès au serveur en production ?

Restreindre l'accès administrateur, activer TLS, limiter les services exposés via pare‑feu et surveiller les logs. Autoriser uniquement les ports nécessaires et restreindre SSH aux adresses de confiance.

Leçon : PHPMyAdmin et MySQL/MariaDB

La gestion des bases de données est indispensable pour de nombreuses applications web. Installer PHPMyAdmin via le gestionnaire de paquets simplifie l'administration mais implique de configurer correctement le VirtualHost et de vérifier les modules PHP requis. Privilégier des utilisateurs dédiés et appliquer le principe du moindre privilège pour les comptes de base de données.

Installation de PHPMyAdmin

Installer PHPMyAdmin depuis les dépôts Debian pour une intégration rapide ; configurer le VirtualHost et tester l'accès restreint.

sudo apt-get update
sudo apt-get install phpmyadmin

Sécurisation du serveur web (HTTPS et Pare‑feu)

Activer TLS sur les VirtualHost, obtenir des certificats (Let's Encrypt) et configurer un pare‑feu (par ex. ufw) pour n'autoriser que les flux HTTP/HTTPS et les services nécessaires. Compléter par des règles de durcissement des hôtes virtuels et des contrôles d'accès aux dossiers sensibles.

Pourquoi utiliser Apache sur une distribution Debian ?

Apache bénéficie d'un large écosystème de modules, d'une intégration aisée aux gestionnaires de paquets Debian et d'un modèle de configuration stable (/etc/apache2). Sur Debian, les mises à jour de sécurité sont centralisées, facilitant la maintenance en entreprise. Pour des besoins spécifiques en environnement Windows, IIS reste une alternative courante ; IIS propose une intégration native à Windows Server et des outils graphiques, mais Apache sur Debian conserve un avantage pour la portabilité, la communauté et la disponibilité d'outils open source. Cette comparaison aide à choisir la plateforme adaptée au contexte de déploiement.

Ressources et bonnes pratiques

  • Vérifier régulièrement les mises à jour de sécurité des paquets Debian.
  • Sauvegarder les configurations avant modification et conserver des copies chiffrées des secrets.
  • Documenter les VirtualHost et les règles de pare‑feu pour faciliter la reprise et l'audit.