Installation et service
sudo apt update sudo apt install apache2 sudo systemctl enable --now apache2 systemctl status apache2 curl -I http://127.0.0.1
Fichiers importants
| Emplacement | Rôle |
|---|---|
/etc/apache2/apache2.conf | Configuration générale |
/etc/apache2/ports.conf | Ports écoutés |
/etc/apache2/sites-available/ | VirtualHosts disponibles |
/etc/apache2/sites-enabled/ | Liens vers les sites activés |
/etc/apache2/mods-available/ | Modules disponibles |
/var/www/ | Contenus web |
/var/log/apache2/ | Logs d’accès et d’erreur |
VirtualHost minimal
<VirtualHost *:80>
ServerName wiki.example.fr
DocumentRoot /var/www/wiki
<Directory /var/www/wiki>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/wiki-error.log
CustomLog ${APACHE_LOG_DIR}/wiki-access.log combined
</VirtualHost>Enregistrer dans /etc/apache2/sites-available/wiki.conf.
sudo mkdir -p /var/www/wiki sudo a2ensite wiki.conf sudo apache2ctl configtest sudo systemctl reload apache2 sudo apache2ctl -S
Modules
sudo a2enmod rewrite sudo a2dismod rewrite apache2ctl -M
rewrite n’est utile que si l’application ou les règles de réécriture l’exigent.
Droits
sudo chown -R root:www-data /var/www/wiki
sudo find /var/www/wiki -type d -exec chmod 750 {} \;
sudo find /var/www/wiki -type f -exec chmod 640 {} \;Donner l’écriture à www-data seulement sur les dossiers nécessaires : uploads, cache, sessions… MariaDB écrit normalement dans /var/lib/mysql, pas dans /var/www.
Diagnostic
sudo apache2ctl configtest sudo apache2ctl -S sudo ss -lntp | grep -E ':80|:443|:8080' sudo journalctl -u apache2 -n 50 --no-pager sudo tail -f /var/log/apache2/error.log curl -I -H "Host: wiki.example.fr" http://127.0.0.1
| Erreur | Piste |
|---|---|
| 403 Forbidden | Droits Unix ou directive Require |
| 404 | Mauvais DocumentRoot, nom d’hôte ou fichier absent |
| Address already in use | Port déjà occupé : contrôler avec ss -lntp |
| 502 via reverse proxy | Apache arrêté, mauvais port ou destination inaccessible |