Ce guide pratique explique comment déployer un serveur web Apache sur Debian. Il s’adresse aux administrateurs et aux développeurs souhaitant un environnement LAMP fiable.
Le processus couvre l’installation, la Configuration Apache, la sécurisation et la maintenance courante. Les points essentiels sont listés juste après, sous le titre A retenir :
A retenir :
- Installation d’Apache2 conforme aux recommandations actuelles de sécurité serveur
- Configuration d’un VirtualHost en HTTPS avec certificats valides
- Activation du Module mod_rewrite et règles d’URL réécrites
- Intégration LAMP prête avec PHP et phpMyAdmin sécurisés
Installer Apache sur Debian : commandes initiales et bonnes pratiques
Le repère précédent incite à lancer l’installation de base d’Apache sur Debian. Selon la documentation d’Apache, garder le système à jour reste une bonne pratique.
Exécutez d’abord une mise à jour avant d’installer les paquets nécessaires sur le serveur. Les commandes typiques incluent apt update, apt upgrade et apt install apache2 pour commencer.
Commandes essentielles pour Apache
Ce point détaille les commandes de base à lancer sur Debian. Selon Debian, commencer par sudo apt update && sudo apt upgrade -y réduit les risques d’erreur.
Ensuite, sudo apt install apache2 installe le service principal sur la machine. Après installation, sudo systemctl start apache2 puis sudo systemctl enable apache2 assurent la disponibilité au démarrage.
Étapes d’installation système :
- sudo apt update && sudo apt upgrade -y
- sudo apt install apache2
- sudo systemctl start apache2
- sudo systemctl enable apache2
- sudo systemctl status apache2
Commande
But
Remarques
sudo apt update
Actualiser la liste des paquets
Première étape avant toute installation
sudo apt upgrade -y
Appliquer les mises à jour disponibles
Réduit les erreurs liées aux dépendances
sudo apt install apache2
Installer le serveur web Apache
Installe le paquet principal apache2
sudo systemctl enable apache2
Activer Apache au démarrage
Permet le redémarrage automatique après reboot
sudo systemctl status apache2
Vérifier l’état du service
Confirme que le daemon est actif
« J’ai déployé Apache sur Debian en quelques minutes grâce à ces commandes simples. »
Jean D.
Permettre le service et vérifier le statut
Ce point explique la gestion du service et la vérification de son état après installation. La commande systemctl status apache2 donne un état détaillé du processus et des journaux récents.
Il est utile de tester ensuite l’accès via l’adresse IP ou un nom de domaine. Selon la documentation d’Apache, l’affichage d’une page par défaut confirme le bon fonctionnement du serveur web.
Vérifications système :
- Accéder à l’IP du serveur depuis un navigateur
- Vérifier /var/www/html/index.html
- Consulter les logs dans /var/log/apache2
- Contrôler les permissions des fichiers web
Configurer VirtualHost et SSL sur Debian : VirtualHost, certificats et pratiques
Après l’installation, il faut configurer un VirtualHost et activer SSL pour sécuriser les connexions. Selon Let’s Encrypt, l’automatisation du renouvellement simplifie la maintenance des certificats.
La configuration se place dans /etc/apache2/sites-available et doit contenir ServerName, DocumentRoot, et directives SSL adaptées. L’exemple doit inclure les chemins vers les certificats fournis par l’outil de certificats.
Structure d’un VirtualHost pour HTTPS
Ce sous-chapitre décrit la structure minimale d’un fichier de VirtualHost pour HTTPS. Le bloc doit déclarer ServerName, DocumentRoot, ErrorLog et CustomLog pour assurer un dépannage efficace.
Selon la documentation d’Apache, inclure les options SSL propres à Let’s Encrypt évite des erreurs courantes. Les directives SSLCertificateFile et SSLCertificateKeyFile pointent vers les certificats valides.
Fichiers de configuration :
- /etc/apache2/sites-available/your-site.conf
- /etc/letsencrypt/live/your-domain/fullchain.pem
- /etc/letsencrypt/live/your-domain/privkey.pem
- /etc/apache2/apache2.conf
Directive
Valeur type
Rôle
ServerName
www.example.com
Nom canonique du site
DocumentRoot
/var/www/example
Emplacement des fichiers servis
SSLCertificateFile
/etc/letsencrypt/live/example/fullchain.pem
Chaîne de certificats publique
SSLCertificateKeyFile
/etc/letsencrypt/live/example/privkey.pem
Clé privée du certificat
« Le site a été accessible avec HTTPS en moins d’une heure, la procédure est fiable. »
Sophie M.
Activer Let’s Encrypt et SSL automatique
Ce point montre l’enchaînement des commandes pour obtenir un certificat automatique. Selon Let’s Encrypt, l’usage de certbot automatise la création et le renouvellement des certificats.
Les étapes pratiques comprennent a2ensite, a2enmod ssl, et systemctl restart apache2 après obtention du certificat. Il est prudent de vérifier le lien symbolique dans /etc/apache2/sites-enabled pour confirmer l’activation.
Étapes de certificat :
- sudo apt install certbot python3-certbot-apache
- sudo certbot –apache -d your-domain.com -d www.your-domain.com
- sudo systemctl restart apache2
- sudo certbot renew –dry-run
Commande
Usage
Remarque
sudo apt install certbot
Installer certbot
Nécessaire pour automatisation SSL
sudo certbot –apache
Obtenir et configurer un certificat
Intègre la configuration Apache
sudo certbot renew
Renouveler les certificats
À planifier via cron ou systemd
sudo a2ensite site.conf
Activer le VirtualHost
Crée un lien dans sites-enabled
Sécurité serveur et modules complémentaires LAMP : durcissement et extensions
Pour aller plus loin, il convient de durcir la configuration et d’ajouter le stack LAMP. La sécurité doit couvrir le pare-feu, les permissions et les modules Apache activés.
Renforcer la configuration évite les intrusions et protège les données utilisateurs. Selon la documentation d’Apache, limiter les modules actifs réduit la surface d’attaque.
Renforcer la Sécurité serveur
Ce point présente des contrôles concrets pour limiter les accès non désirés. Il convient d’activer un pare-feu et de restreindre les accès SSH et services inutiles.
Activez UFW, désactivez les modules inutiles et protégez les répertoires sensibles. Vérifiez aussi les permissions des dossiers web et supprimez les pages par défaut.
Contrôles post-installation :
- Configurer UFW pour autoriser seulement HTTP, HTTPS et SSH
- Restreindre l’accès SSH par clé et par adresse IP
- Activer mod_security et autres modules de filtrage
- Vérifier et corriger les permissions des répertoires web
Contrôle
Action
Impact
Pare-feu (UFW)
Autoriser 80, 443, 22
Réduit les accès non nécessaires
Permissions fichiers
www-data ownership et 750
Limite les modifications non autorisées
mod_security
Activer et configurer règles
Filtre les requêtes malveillantes
Désactiver listing
AllowOverride et Options -Indexes
Empêche l’exposition des fichiers
« En changeant les droits et en activant UFW, j’ai réduit les alertes de sécurité. »
Marc L.
Installer PHP, phpMyAdmin et modules utiles
Ce point explique l’ajout de PHP et d’outils de gestion comme phpMyAdmin. L’installation complète implique libapache2-mod-php, php-mysql et autres paquets liés à PHP.
Après installation, adaptez php.ini selon la charge et les besoins applicatifs. Selon Debian, sécuriser l’accès à phpMyAdmin évite des expositions de base de données inutiles.
Modules recommandés :
- libapache2-mod-php pour intégration PHP
- php-mysql pour liaison avec MariaDB/MySQL
- phpmyadmin pour gestion des bases locales
- php-cli et extensions utiles selon l’application
Paquet
Rôle
Remarques
libapache2-mod-php
Intégration PHP-Apache
Permet d’exécuter les scripts PHP
php-mysql
Connecteur MySQL/MariaDB
Nécessaire pour phpMyAdmin et apps
phpmyadmin
Interface de gestion de bases
Protéger l’accès par mot de passe
php-cli
Outils en ligne de commande
Utile pour tâches et scripts
« phpMyAdmin facilite la gestion des bases pour les petites installations, attention aux droits. »
Clara D.
Source : The Apache Software Foundation, « Apache HTTP Server Documentation », The Apache Software Foundation ; Debian, « Apache2 packaging and administration », Debian ; Let’s Encrypt, « Certbot documentation », Let’s Encrypt.