Installation serveur web : Maîtriser la configuration — Cours PDF (Intermédiaire)
Cours PDF gratuit centré sur la configuration d'Apache, la mise en place d'un environnement PHP moderne (PHP 8.x et variantes contemporaines) et l'intégration avec une base de données MySQL. Le modèle Client-Serveur décrit l'architecture où le client envoie des requêtes et le serveur fournit des réponses ; le protocole HTTP structure ces échanges sur le web. Rédigé par MAISSE Sébastien, administrateur IT, le contenu privilégie une approche méthodique pour la configuration, le diagnostic et la sécurisation, basée sur des procédures vérifiées, checklists de durcissement et outils de diagnostic (openssl, curl, sslyze, Qualys SSL Labs).
🎯 Ce que vous allez apprendre
- Introduction : objectifs et rôle d'un serveur web.
- Apache : installation et configuration du serveur HTTP.
- Configuration de l'environnement PHP : paramétrage moderne et extensions utiles.
- MySQL : installation et gestion des bases de données SQL.
- PhpMyAdmin : mise en place pour administrer les bases de données.
- Sécurité du serveur : bonnes pratiques et durcissement.
Prérequis techniques
- Connexion Internet stable.
- Système d'exploitation : Windows (incluant Windows Server 2012 / Windows Server 2019) ou distribution Linux récente.
- Droits d'administrateur (ou sudo) pour l'installation et la configuration.
- Versions minimales recommandées : Apache 2.4+, PHP 8.0+, MySQL 5.7+ (idéalement MySQL 8.0).
- Outils de diagnostic conseillés :
curl,openssl, analyseur de ports et gestionnaires de pare-feu.
Pourquoi installer son propre serveur web ?
Un serveur web local offre un contrôle poussé sur la configuration, la sécurité et les performances : choix des versions d'Apache/PHP/MySQL, optimisation des modules, règles de firewall et politique de sauvegarde. L'auto‑hébergement facilite l'expérimentation et l'apprentissage (tests locaux, déploiements progressifs). L'hébergement mutualisé simplifie la maintenance mais restreint les droits et la personnalisation. Le document décrit ces compromis pour guider le choix selon besoins et contraintes.
Architecture d'un serveur web : Apache, MySQL et PHP
Un serveur web combine un serveur HTTP (Apache), un moteur d'exécution PHP pour traiter les scripts côté serveur, et un système de gestion de base de données (MySQL) pour stocker les données. Apache reçoit les requêtes HTTP, exécute les scripts PHP et interroge MySQL lorsque nécessaire. Les rôles de chaque composant, leurs interactions et les configurations communes pour un environnement stable et performant sont présentés, avec exemples de fichiers de configuration et paramètres critiques.
Comparaison d'approche : installation manuelle vs suites logicielles (WAMP / LAMP / XAMPP). L'installation manuelle offre un contrôle fin des versions et des chemins, adaptée à la production et à un apprentissage approfondi. Les suites fournissent un déploiement rapide d'un serveur complet et conviennent pour des environnements locaux et des travaux pratiques.
Installation manuelle vs WAMP/XAMPP : Le comparatif
Le choix entre installation manuelle et suites dépend des objectifs : maîtrise des chemins et optimisations pour la production versus rapidité de mise en œuvre pour des TP. Le tableau ci‑dessous résume les différences principales.
| Environnement | Système | Composants | Usage recommandé |
|---|---|---|---|
| WAMP | Windows | Apache, MySQL, PHP (préconfigurés) | Développement local sur Windows, TP et démonstrations rapides |
| LAMP | Linux | Apache, MySQL/MariaDB, PHP | Environnements serveur, production et déploiements personnalisés |
| XAMPP | Multi‑plateforme (Windows/Linux/macOS) | Apache, MySQL, PHP, outils supplémentaires (phpMyAdmin) | Laboratoires, tests multiplate‑forme, environnements pédagogiques |
Alternatives : IIS et Nginx
IIS (Internet Information Services) est l'alternative Microsoft, bien intégrée à Windows Server et adaptée aux environnements d'entreprise nécessitant une gestion graphique et des outils Microsoft natifs. IIS gère les applications .NET et peut héberger PHP via FastCGI. Apache reste dominant pour sa flexibilité, son écosystème de modules et sa compatibilité multiplate‑forme ; Nginx se distingue par une consommation mémoire réduite et une excellente gestion des connexions simultanées, souvent utilisé en reverse proxy devant PHP‑FPM. En entreprise, le choix entre serveur HTTP Apache et IIS dépend des contraintes d'infrastructure, des compétences de l'équipe et des exigences de scalabilité.
Serveur HTTP Apache
Présentation synthétique du serveur HTTP Apache : architecture modulaire, gestion des modules (mod_ssl, mod_rewrite, etc.), et mécanismes de virtualisation d'hôtes. La section inclut une configuration Apache pas à pas pour déployer un site, activer les modules essentiels et optimiser les performances en production.
Configuration des Virtual Hosts
La configuration des virtual hosts permet d'héberger plusieurs sites sur une seule instance Apache, en isolant les DocumentRoot et les directives par domaine. Exemples inclus : bloc <VirtualHost *:80> minimal, directives pour les logs personnalisés et la gestion des certificats TLS. Les bonnes pratiques couvrent les permissions des répertoires, la séparation des fichiers de configuration et les tests locaux avec hosts pour valider la résolution.
Comprendre le protocole HTTP
HTTP fonctionne sur des ports dédiés (par défaut le port 80 pour HTTP, le port 443 pour HTTPS). Les requêtes les plus courantes sont GET (récupération de ressources) et POST (envoi de données, formulaires). Les tests s'effectuent sur localhost ou via une adresse IP locale ; le diagnostic inclut la vérification des réponses serveur et l'analyse des codes d'état et des en-têtes.
Configuration HTTPS et SSL
La sécurisation des échanges nécessite le passage de HTTP vers HTTPS en installant un certificat SSL/TLS valide et en configurant le serveur pour écouter sur le port 443. Le document traite du choix entre certificats auto-signés (usage de test) et certificats émis par une autorité de certification, de la génération d'une CSR, de l'installation du certificat sur Apache et de la configuration des redirections HTTP→HTTPS. Bonnes pratiques couvertes : désactiver les protocoles obsolètes, forcer TLSv1.2+ et tester la chaîne de certificats.
TP Installation serveur web : Exercices et corrigés PDF
- TP 1 — Installation d'Apache sur Linux : configuration de virtual hosts, modules essentiels et tests.
- TP 2 — PHP 8.x : installation, validation des extensions requises, configuration de
php.iniet PHP‑FPM. - TP 3 — MySQL : installation, création d'un schéma et gestion des utilisateurs.
- TP 4 — Déploiement et administration via phpMyAdmin ; exercices corrigés PDF pour manipulation de bases.
- TP 5 — Mise en place d'un certificat SSL/TLS : génération de CSR, installation et tests de la chaîne.
- TP 6 — TP administration réseau : configuration de firewall, redirections de ports, tests d'accès depuis
localhostet réseau local.
Spécificités Windows Server 2012/2019
Sur Windows Server, l'administration passe souvent par le Gestionnaire de serveur, le Gestionnaire IIS et les outils graphiques. Pour Apache/PHP sur ces plateformes : PHP s'exécute généralement via FastCGI ; les fichiers web par défaut se trouvent sous C:\inetpub\wwwroot ou selon l'installation Apache ; la gestion du pare‑feu se réalise avec Windows Firewall with Advanced Security. Les journaux d'événements (Observateur d'événements) et l'outil de surveillance réseau aident au diagnostic. Le guide détaille les étapes d'installation spécifiques, les permissions NTFS à vérifier et les points d'intégration avec les services Microsoft.
Diagnostic et Logs serveur
La lecture et l'analyse des journaux sont essentielles pour le diagnostic : noms de fichiers courants error.log et access.log. Le document explique où trouver ces fichiers selon la distribution et propose des commandes pour suivre et filtrer les événements critiques pendant les tests.
# Exemple : suivre les logs en temps réel
tail -f /var/log/apache2/error.log
tail -f /var/log/apache2/access.log
Sécurité d'un serveur
Durcissement : mise à jour régulière des composants, limitation des modules actifs, configuration stricte des permissions, mise en place d'authentification forte et surveillance des logs. Politique de sauvegarde, segmentation réseau et tests de montée en charge sont présentés avec checklists et commandes utiles pour la maintenance.
Différences entre hébergement local et distant
L'hébergement local sert de laboratoire sécurisé pour tester des scripts et configurations sans impacter un site public. L'hébergement distant chez un fournisseur offre disponibilité, sauvegardes et scalabilité, mais limite souvent l'accès root et certaines configurations. Le document compare les méthodes de mise en production et les bonnes pratiques pour migrer un environnement local vers un serveur distant.
📑 Sommaire du document
- Introduction
- Apache — installation et configuration
- PHP — configuration de l'environnement
- MySQL — installation et configuration
- PhpMyAdmin — installation et configuration
- Sécurité d'un serveur
- Ressources et conclusion
👤 À qui s'adresse ce cours ?
Administrateurs IT et développeurs de niveau intermédiaire souhaitant maîtriser la configuration d'un serveur web. Des connaissances de base en systèmes et réseaux sont recommandées ; le contenu privilégie la pratique et la compréhension technique pour permettre des déploiements fiables et sécurisés.