apache2 — Serveur web Apache
Apache HTTP Server (httpd) est un serveur web historique, à l'architecture modulaire (MPM prefork/worker/event + modules chargeables). Le nom du service et les chemins diffèrent selon la distribution : apache2 sous Debian/Ubuntu, httpd sous RHEL-like (voir httpd pour les spécificités RHEL).
Installation
sudo apt install apache2
sudo systemctl enable --now apache2
sudo a2enmod ssl rewrite headers # activer des modules courants
Fichiers de configuration
| Chemin | Rôle |
|---|---|
/etc/apache2/apache2.conf | Configuration principale |
/etc/apache2/sites-available/ + sites-enabled/ | Vhosts (activés via a2ensite) |
/etc/apache2/mods-available/ + mods-enabled/ | Modules (activés via a2enmod) |
/var/log/apache2/access.log / error.log | Logs |
Commandes utiles
sudo apachectl configtest # Vérifier la syntaxe
sudo systemctl reload apache2
sudo a2ensite monsite && sudo systemctl reload apache2
sudo a2dismod status # Désactiver un module
apache2ctl -M # Lister les modules chargés
Exemple de configuration
<VirtualHost *:80>
ServerName exemple.fr
DocumentRoot /var/www/exemple
<Directory /var/www/exemple>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Sécurisation
ServerTokens ProdetServerSignature Offpour ne pas divulguer version/OS.- Désactiver les modules non utilisés (
a2dismod) — surface d'attaque réduite. AllowOverride Nonepar défaut, activer.htaccessuniquement où nécessaire (impact performance + sécurité).- MPM
eventrecommandé (meilleure gestion mémoire/concurrence queprefork) sauf si dépendance à des modules non thread-safe (mod_php classique). - Restreindre l'accès aux répertoires sensibles (
<Directory>avecRequire all deniedpar défaut, puis autoriser explicitement).
Logs & dépannage
tail -f /var/log/apache2/error.log
journalctl -u apache2 -f
sudo apachectl configtest