Installer et configurer Apache sur Ubuntu et Windows
Guide complet pour installer le serveur web Apache sur Ubuntu et Windows, incluant la configuration des virtual hosts, mod_rewrite et du pare-feu.

Sur cette page
Apache HTTP Server existe depuis 1995 et reste l’un des serveurs web les plus utilisés : il reçoit les requêtes du navigateur et renvoie les pages, seul ou en combinaison avec PHP et une base de données. Voyons l’installation sur les deux systèmes, puis les éléments dont vous aurez besoin juste après : le pare-feu, les hôtes virtuels et les modules.
Installer Apache sur Ubuntu #
Les commandes sont valables pour Ubuntu 26.04 LTS, la dernière version avec support à long terme, ainsi que pour les versions LTS précédentes encore supportées, la 24.04 et la 22.04. Les permissions d’administrateur sont nécessaires.
Mettez à jour la liste des paquets et installez le serveur :
sudo apt update sudo apt install apache2Vérifiez que le service est bien démarré :
sudo systemctl status apache2Si vous lisez
active (running), tout est en ordre. Sinon, démarrez-le avecsudo systemctl start apache2.Ouvrez votre navigateur sur
http://localhost: la page par défaut « Apache2 Default Page » doit apparaître. Si le serveur est une autre machine, vous aurez besoin de son adresse IP, que vous obtiendrez avechostname -I(généralement la première de la liste), à saisir dans le navigateur commehttp://indirizzo-ip.
Si vous voyez cette page, le serveur est installé et en écoute
Les quatre commandes que vous utiliserez le plus souvent par la suite sont les suivantes :
sudo systemctl start apache2 # avvia
sudo systemctl stop apache2 # ferma
sudo systemctl restart apache2 # riavvia
sudo systemctl reload apache2 # ricarica la configurazione senza interrompere le connessioni
Après une modification de la configuration, utilisez reload : les requêtes en cours ne seront pas interrompues.
Apache démarre automatiquement à chaque démarrage du système. Si vous ne le souhaitez pas, désactivez-le avec sudo systemctl disable apache2 et réactivez-le avec sudo systemctl enable apache2.
Le pare-feu UFW #
Sur Ubuntu, le pare-feu s’appelle UFW et doit être configuré pour autoriser certaines ports. Apache enregistre automatiquement trois profils :
sudo ufw app list
La liste affiche Apache (uniquement le port 80), Apache Secure (uniquement le 443) et Apache Full (les deux). Je recommande d’ouvrir directement Apache Full, car vous ajouterez tôt ou tard un certificat HTTPS ; si l’HTTP vous suffit pour l’instant, utilisez 'Apache' :
sudo ufw allow 'Apache Full'
sudo ufw enable
sudo ufw status
sudo ufw allow OpenSSH. Activer UFW sans cette règle fermera le port par lequel vous êtes connecté et vous coupera l’accès au serveur.Emplacement des fichiers #
| Chemin | Contenu |
|---|---|
/var/www/html | Les fichiers du site par défaut |
/etc/apache2/apache2.conf | Configuration principale |
/etc/apache2/ports.conf | Les ports sur lesquels Apache reste en écoute (80, et 443 avec SSL) |
/etc/apache2/sites-available/ | Hôtes virtuels disponibles |
/etc/apache2/sites-enabled/ | Hôtes virtuels actifs (liens vers les précédents) |
/var/log/apache2/access.log | Journal d’accès (logs) |
/var/log/apache2/error.log | Journal d’erreurs : le premier endroit à vérifier quand quelque chose ne fonctionne pas |
Installer Apache sur Windows #
Pour Windows, le projet ne distribue que le code source et renvoie vers des compilations réalisées par des tiers. La plus utilisée et la plus à jour est celle de Apache Lounge, répertoriée sur la page de téléchargement officielle. Apache Haus, que vous trouverez dans de nombreux guides, n’a pas été mis à jour depuis 2022 : oubliez-la.
Libérez le port 80. Si vous avez activé IIS, le serveur web de Microsoft inclus dans les éditions Pro, désactivez-le via Activer ou désactiver des fonctionnalités Windows en décochant Services Internet (IIS). Plus bas, vous trouverez comment identifier quel autre programme occupe le port.
Installez le Visual C++ Redistributable requis par la version choisie : il est indiqué sur la page de téléchargement et constitue la cause la plus fréquente d’échecs au démarrage.
Téléchargez l’archive ZIP 64 bits et extrayez le dossier
Apache24dansC:\, afin d’obtenirC:\Apache24. C’est le chemin attendu par la configuration par défaut.Ouvrez
C:\Apache24\conf\httpd.confavec un éditeur de texte. Si vous avez extrait les fichiers ailleurs, corrigez la variableSRVROOTen haut du fichier, qui sert de base à toutes les autres directives, en utilisant toujours des barres obliques :Define SRVROOT "c:/Apache24"Profitez-en pour retirer le dièse devant
ServerNameet écrivezServerName localhost:80: cela vous évitera l’avertissement AH00558 à chaque démarrage.Ouvrez l’Invite de commandes en tant qu’administrateur et testez la configuration :
cd C:\Apache24\bin httpd.exe -tLa réponse attendue est
Syntax OK. En cas d’erreur, le message indique le fichier et la ligne à corriger.Enregistrez Apache en tant que service Windows pour qu’il démarre automatiquement au lancement du système :
httpd.exe -k installDémarrez le service et vérifiez sur
http://localhost:httpd.exe -k start
Pour le gérer ultérieurement : httpd.exe -k stop l’arrête, httpd.exe -k restart le redémarre, httpd.exe -k uninstall supprime le service. Vous le trouverez également dans les services Windows (services.msc) sous le nom Apache2.4 : en double-cliquant, vous pouvez choisir de le lancer automatiquement ou manuellement. En mode manuel, vous pouvez le lancer avec net start Apache2.4 depuis une invite de commandes en tant qu’administrateur.
L’installation inclut également ApacheMonitor.exe, une petite icône dans la zone de notification permettant de démarrer et d’arrêter le serveur sans ouvrir l’invite de commandes.
Si le port 80 est déjà occupé
Sous Windows, le port 80 est souvent utilisée par d’autres programmes : IIS, les anciennes versions de Skype ou certains services système. Pour découvrir lequel l’utilise, utilisez un invite de commande avec des privilèges d’administrateur :
netstat -aon | findstr :80
Le dernier numéro de la ligne est l’identifiant du processus, que vous pouvez rechercher dans le Gestionnaire des tâches sous l’onglet Détails. Vous pouvez fermer ce programme ou changer le port d’Apache en modifiant httpd.conf:
Listen 8080
Dans ce cas, le site répondra sur http://localhost:8080.
Déplacer les fichiers du site #
Par défaut, Apache sert les fichiers de C:\Apache24\htdocs. Si vous préférez stocker vos sites sur un autre disque, par exemple pour simplifier les sauvegardes, modifiez httpd.conf ainsi que le bloc DocumentRoot qui suit dans <Directory> :
DocumentRoot "D:/Siti"
<Directory "D:/Siti">
Ensuite, placez un fichier index.html dans le dossier, redémarrez le service et rechargez http://localhost.
Et sur macOS ? #
macOS possède une version d’Apache préinstallée, mais elle n’est pas à jour. Il est préférable d’en installer une via Homebrew :
brew install httpd
brew services start httpd
Les fichiers de configuration se trouvent sous /opt/homebrew/etc/httpd/ sur les Mac avec Apple Silicon et le serveur répond par défaut sur le port 8080.
Hôtes virtuels : plusieurs sites sur le même serveur #
Un hôte virtuel indique à Apache quel dossier servir en fonction du nom de domaine demandé. Il est conseillé de l’utiliser même pour un site unique, afin de séparer sa configuration de la configuration par défaut.
Sur Ubuntu #
Créez le dossier du site et attribuez les permissions :
sudo mkdir -p /var/www/esempio.test/public_html sudo chown -R $USER:$USER /var/www/esempio.test/public_htmlCréez le fichier
/etc/apache2/sites-available/esempio.test.confavec ce contenu :<VirtualHost *:80> ServerName esempio.test ServerAlias www.esempio.test DocumentRoot /var/www/esempio.test/public_html <Directory /var/www/esempio.test/public_html> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/esempio.test-error.log CustomLog ${APACHE_LOG_DIR}/esempio.test-access.log combined </VirtualHost>Activez le site, désactivez le site par défaut et rechargez :
sudo a2ensite esempio.test.conf sudo a2dissite 000-default.conf sudo apache2ctl configtest sudo systemctl reload apache2Pour tester en local, ajoutez la ligne
127.0.0.1 esempio.testau fichier/etc/hosts.
La directive AllowOverride All est celle qui permet aux fichiers .htaccess de fonctionner : sans elle, les règles de réécriture dans les sous-dossiers sont ignorées.
Sur Windows #
Le mécanisme est le même, mais les hôtes virtuels se trouvent dans conf/extra/httpd-vhosts.conf, qu’il faut d’abord activer en supprimant le commentaire (le dièse) sur la ligne correspondante dans httpd.conf :
Include conf/extra/httpd-vhosts.conf
Définissez ensuite les hôtes avec la même syntaxe que précédemment, en utilisant des chemins de style Windows (c:/siti/esempio/public_html), et ajoutez la correspondance dans le fichier C:\Windows\System32\drivers\etc\hosts, qui doit être ouvert avec un éditeur lancé en tant qu’administrateur.
Activer mod_rewrite et les autres modules #
mod_rewrite réécrit les adresses : c’est ce qu’utilisent les URL “propres” de WordPress, le routage des frameworks PHP et toute redirection écrite dans un fichier .htaccess. Par défaut, il est désactivé.
Sur Ubuntu :
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod ssl
sudo systemctl restart apache2
Sous Windows, l’intervention se fait sur httpd.conf, en supprimant le dièse devant les lignes des modules :
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule headers_module modules/mod_headers.so
Dans les deux cas, mod_rewrite ne fonctionne que si AllowOverride All est également présent dans le bloc <Directory> du dossier du site. Si les règles ne fonctionnent pas, il manque souvent précisément cela.
Pour voir la liste des modules actifs : apache2ctl -M sur Ubuntu, httpd.exe -M sur Windows.
Quand quelque chose ne fonctionne pas #
Apache ne démarre pas. Testez la configuration avec apache2ctl configtest ou httpd.exe -t : l’erreur indique le fichier et la ligne. Sous Windows, vérifiez que vous avez installé la version requise de Visual C++ Redistributable.
Erreur 403 Forbidden. Problème de permissions du dossier ou directive Require all granted manquante dans le bloc <Directory>. Sur Ubuntu, les fichiers doivent être lisibles par l’utilisateur www-data.
Les règles de réécriture sont ignorées. Module non activé ou AllowOverride configuré sur None.
La page par défaut s’affiche à la place du site. L’hôte virtuel n’a pas été activé, ou le nom dans le fichier hosts ne correspond pas à celui écrit dans ServerName.
Dans tous les cas, le premier endroit où regarder est le journal d’erreurs : /var/log/apache2/error.log sur Ubuntu, C:\Apache24\logs\error.log sur Windows.
Foire aux questions #
Mieux vaut Apache ou Nginx ? #
Cela dépend de la charge et de ce que vous devez servir. Nginx gère mieux de nombreuses connexions simultanées tout en consommant peu, et c’est le plus utilisé pour les sites à fort trafic. Apache est plus simple pour les débutants, il accepte la configuration par dossier avec les fichiers .htaccess (ce que Nginx ne fait pas) et c’est celui que l’on trouve chez la plupart des hébergeurs mutualisés. On utilise souvent les deux ensemble : Nginx en frontal et Apache en arrière-plan.
Comment ajouter le support de PHP ? #
Sur Ubuntu, il s’agit d’une seule commande : sudo apt install php libapache2-mod-php, suivie d’un redémarrage du service. Sous Windows, PHP doit être téléchargé séparément dans sa version « Thread Safe » et lié à Apache en ajoutant les lignes LoadModule et PHPIniDir dans httpd.conf, en veillant à utiliser une compilation 64 bits comme celle d’Apache.
Dois-je ouvrir les ports sur le routeur pour être accessible depuis Internet ? #
Oui, pour être visible de l’extérieur, vous devez rediriger les ports 80 et 443 vers votre ordinateur. Réfléchissez bien avant : un serveur exposé doit être maintenu à jour et surveillé. Si vous voulez simplement montrer un site à quelqu’un, un tunnel temporaire ou un petit hébergement sont des options plus prudentes.
Comment mettre à jour Apache sur Windows ? #
Arrêtez le service avec httpd.exe -k stop et faites une copie de httpd.conf, du dossier conf et des fichiers du site. Extrayez ensuite la nouvelle version par-dessus l’ancienne sans écraser votre configuration, vérifiez avec httpd.exe -t et redémarrez. Le service enregistré reste le même, il n’est pas nécessaire de le réinstaller.
Comment activer l’HTTPS ? #
Sur un serveur public, la méthode standard est Let’s Encrypt avec l’outil Certbot, qui obtient le certificat et configure Apache automatiquement. En local, une autorité de certification n’est pas nécessaire : un certificat auto-signé suffit. Le navigateur le signalera comme non fiable, mais vous pouvez tout de même tester votre site en HTTPS.
Quelle est la différence entre restart et reload ? #
restart arrête et redémarre le processus, coupant ainsi les connexions en cours. reload force la relecture de la configuration tout en laissant les requêtes déjà lancées se terminer : sur un serveur en production, utilisez cette option après une modification.

