Docs Serveur Linux Site Web Apache2
Débutant Debian / Ubuntu

Créer et Héberger un Site Web avec Apache2 sous Debian / Ubuntu (Virtual Host)

D
Par Dylan Pacques

Apache2 reste le serveur web le plus déployé au monde pour servir des sites statiques ou des applications PHP. Ce guide va droit au but : installer Apache, ouvrir les ports, préparer l'arborescence et lier un nom de domaine à votre site via un Virtual Host.

Démarrage Rapide (TL;DR)

Pour les pressés, l'essentiel en 3 commandes :

# 1. Installer Apache
sudo apt install apache2 -y

# 2. Créer le Virtual Host
sudo nano /etc/apache2/sites-available/mon-site.conf

# 3. Activer et recharger
sudo a2ensite mon-site.conf && sudo systemctl reload apache2

Étape 1 : Installation et Pare-feu

Installez le paquet apache2 depuis les dépôts officiels. Le service démarre et s'active automatiquement au boot.

Terminal - Serveur Web
sudo apt update
sudo apt install apache2 -y

Ouvrez ensuite les ports 80 (HTTP) et 443 (HTTPS) sur votre pare-feu :

UFW
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
nftables (alternative)
sudo nft add rule inet filter input tcp dport { 80, 443 } accept

Étape 2 : Structure des dossiers et Permissions

Isolez chaque site dans son propre dossier sous /var/www. Créez l'arborescence puis attribuez la propriété à l'utilisateur système www-data sous lequel tourne Apache.

sudo mkdir -p /var/www/mon-site/html
sudo chown -R www-data:www-data /var/www/mon-site/html
sudo chmod -R 755 /var/www/mon-site

# Page de test
echo "<h1>Mon site fonctionne !</h1>" | sudo tee /var/www/mon-site/html/index.html

Étape 3 : Configuration du Virtual Host

Le Virtual Host lie un nom de domaine à un dossier web. Créez le fichier /etc/apache2/sites-available/mon-site.conf avec le contenu suivant :

/etc/apache2/sites-available/mon-site.conf
<VirtualHost *:80>
    ServerName mon-site.fr
    ServerAlias www.mon-site.fr
    ServerAdmin [email protected]

    DocumentRoot /var/www/mon-site/html

    <Directory /var/www/mon-site/html>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/mon-site_error.log
    CustomLog ${APACHE_LOG_DIR}/mon-site_access.log combined
</VirtualHost>
DNS obligatoire

Le champ DNS de type A de mon-site.fr doit pointer vers l'IP publique de votre serveur pour que le Virtual Host réponde au bon domaine.

Étape 4 : Activation et Test

Activez votre site, désactivez le site par défaut, validez la syntaxe puis rechargez Apache.

sudo a2ensite mon-site.conf
sudo a2dissite 000-default.conf

# Vérifier la syntaxe (doit retourner "Syntax OK")
sudo apache2ctl configtest

# Appliquer
sudo systemctl reload apache2

Visitez http://mon-site.fr dans votre navigateur : votre page de test doit s'afficher. Pour passer en HTTPS, enchaînez avec Certbot — voir notre guide SSL Let's Encrypt (Apache est aussi supporté via python3-certbot-apache).

Passer en production

Un site en production exige une infrastructure stable, disponible et redondée. Nos VPS Linux Plennyx vous offrent des ressources dédiées et une connectivité réseau performante en France, idéales pour héberger Apache dans de bonnes conditions.

Pas envie d'administrer Apache en ligne de commande ?

Concentrez-vous sur votre activité, on s'occupe du reste. Notre Hébergement Web géré déploie et maintient vos sites clés en main, et notre offre d'Infogérance assure le monitoring et les mises à jour 24/7 de votre serveur.

FAQ

Où placer les fichiers de mon site web avec Apache2 ?

Dans un dossier dédié par site sous /var/www, par exemple /var/www/mon-site/html. Ce dossier doit appartenir à www-data (chown -R www-data:www-data) pour être servi correctement.

Quelle est la différence entre a2ensite et a2dissite ?

a2ensite active une configuration via un lien symbolique de sites-available vers sites-enabled ; a2dissite le désactive. Un systemctl reload apache2 est requis après chaque changement.

Comment vérifier que ma configuration Apache2 est valide ?

La commande apache2ctl configtest (ou apache2ctl -t) analyse la syntaxe et renvoie Syntax OK si tout est bon. Lancez-la toujours avant de recharger le service.