Apache : installation sur Ubuntu
Apache HTTP Server est un serveur web modulaire, très répandu. Ce guide l’installe sur Ubuntu 24.04 et 26.04. Les exemples utilisent des noms génériques (exemple.com).
Versions fournies par Ubuntu
Section intitulée « Versions fournies par Ubuntu »| Ubuntu | Paquet apache2 |
|---|---|
| 24.04 | Apache 2.4.58 |
| 26.04 | Apache 2.4.66 |
Les deux appartiennent à la série 2.4. Ubuntu rétroporte les correctifs de sécurité dans chaque version.
Installer
Section intitulée « Installer »sudo apt updatesudo apt install apache2apache2 -vsudo systemctl status apache2sudo systemctl enable --now apache2curl -I http://localhost # 200 OKOuvrir les ports (UFW)
Section intitulée « Ouvrir les ports (UFW) »sudo ufw app list # Apache, Apache Full, Apache Secure, OpenSSHsudo ufw allow 'Apache Full' # ports 80 et 443sudo ufw allow OpenSSH # à ne pas oublier avant d'activer UFWsudo ufw status| Profil | Ports |
|---|---|
Apache |
80 |
Apache Secure |
443 |
Apache Full |
80 et 443 |
Fichiers et emplacements
Section intitulée « Fichiers et emplacements »| Élément | Emplacement |
|---|---|
| Configuration principale | /etc/apache2/apache2.conf |
| Ports d’écoute | /etc/apache2/ports.conf |
| Sites disponibles / activés | /etc/apache2/sites-available/ et sites-enabled/ |
| Configurations supplémentaires | /etc/apache2/conf-available/ et conf-enabled/ |
| Modules disponibles / activés | /etc/apache2/mods-available/ et mods-enabled/ |
| Variables (utilisateur, journaux) | /etc/apache2/envvars |
| Racine par défaut | /var/www/html |
| Journaux | /var/log/apache2/access.log, /var/log/apache2/error.log |
| Utilisateur des processus | www-data |
Gérer sites, modules et configurations
Section intitulée « Gérer sites, modules et configurations »Ubuntu fournit des commandes qui créent ou retirent les liens symboliques « disponible » vers « activé » :
| Commande | Rôle |
|---|---|
sudo a2ensite exemple.com / a2dissite exemple.com |
Active / désactive un site |
sudo a2enmod rewrite / a2dismod rewrite |
Active / désactive un module |
sudo a2enconf security / a2disconf security |
Active / désactive un fragment de configuration |
apache2ctl configtest |
Teste la syntaxe |
apache2ctl -S |
Affiche les sites virtuels reconnus |
apache2ctl -M |
Liste les modules chargés |
apache2ctl -V |
Version, MPM et chemins de compilation |
Toute modification se teste avant d’être appliquée :
sudo apache2ctl configtest # doit répondre « Syntax OK »sudo systemctl reload apache2 # applique sans couper les connexionsSupprimer l’avertissement ServerName
Section intitulée « Supprimer l’avertissement ServerName »AH00558: apache2: Could not reliably determine the server's fully qualified domain nameecho "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.confsudo a2enconf servernamesudo apache2ctl configtest && sudo systemctl reload apache2Un premier site
Section intitulée « Un premier site »sudo mkdir -p /var/www/exemple.comecho '<h1>Bonjour</h1>' | sudo tee /var/www/exemple.com/index.html
sudo tee /etc/apache2/sites-available/exemple.com.conf <<'CONF'<VirtualHost *:80> ServerName exemple.com ServerAlias www.exemple.com DocumentRoot /var/www/exemple.com
<Directory /var/www/exemple.com> Options -Indexes Require all granted </Directory>
ErrorLog ${APACHE_LOG_DIR}/exemple.com.error.log CustomLog ${APACHE_LOG_DIR}/exemple.com.access.log combined</VirtualHost>CONF
sudo a2ensite exemple.comsudo apache2ctl configtest && sudo systemctl reload apache2curl -H "Host: exemple.com" http://localhostPour désactiver le site par défaut (page « Apache2 Default Page ») : sudo a2dissite 000-default.
Droits des fichiers
Section intitulée « Droits des fichiers »sudo chown -R $USER:www-data /var/www/exemple.comsudo chmod -R u=rwX,g=rX,o=rX /var/www/exemple.com| Méthode | Principe | Quand |
|---|---|---|
| PHP-FPM (recommandé) | Apache transmet à un service PHP séparé (proxy_fcgi) ; compatible avec le MPM event |
Usage courant, meilleures performances |
libapache2-mod-php |
PHP intégré à Apache ; impose le MPM prefork |
Applications anciennes |
Le paquet libapache2-mod-php désactive le MPM event et active prefork : préférer PHP-FPM (voir Sites virtuels).
Mise à jour
Section intitulée « Mise à jour »sudo apt update && sudo apt upgrade # mises à jour de sécurité avec le systèmesudo systemctl restart apache2Désinstallation
Section intitulée « Désinstallation »sudo apt purge apache2 apache2-utils apache2-binsudo apt autoremoveDépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
Address already in use: AH00072: make_sock: could not bind to address [::]:80 |
Un autre serveur écoute sur le port 80 (souvent Nginx) : sudo ss -tlnp | grep ':80' |
403 Forbidden |
Require all granted manquant dans <Directory>, ou droits insuffisants pour www-data |
404 Not Found |
DocumentRoot incorrect, ou site non activé (a2ensite) |
AH00526: Syntax error |
sudo apache2ctl configtest : fichier et ligne indiqués |
| Le mauvais site s’affiche | ServerName incorrect : le premier site (par ordre alphabétique) répond par défaut. apache2ctl -S |
| Le service ne démarre pas | sudo journalctl -u apache2 -n 50 et sudo tail /var/log/apache2/error.log |
Ubuntu 24.04 et 26.04 : différences à connaître
Section intitulée « Ubuntu 24.04 et 26.04 : différences à connaître »Les commandes d’installation sont identiques sur les deux versions.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Documentation officielle : httpd.apache.org/docs/2.4
- Suite : Structure de la configuration