
Dans ce didacticiel, nous vous expliquerons comment configurer les hôtes virtuels Apache sur Debian 9.
Apache Virtual Hosts vous permet d'héberger plusieurs domaines sur une seule machine. Lorsque vous utilisez des hôtes virtuels, vous pouvez spécifier une racine de document différente (le répertoire qui contient les fichiers du site Web) pour chaque domaine ou sous-domaine, créer une politique de sécurité distincte, utiliser différents certificats SSL et bien plus encore.
Bien que ce tutoriel soit écrit pour Debian 9, les mêmes étapes s'appliquent à toutes les distributions basées sur Debian.
Prérequis #
Assurez-vous que vous avez satisfait aux prérequis suivants avant de poursuivre ce didacticiel :
- Avoir un nom de domaine pointant vers l'adresse IP de votre serveur. Dans ce didacticiel, nous utiliserons
example.com
. - Apache installé sur votre serveur Debian.
- Connecté en tant qu'utilisateur avec des privilèges sudo.
Créer la structure de répertoire #
La racine du document est un répertoire dans lequel les fichiers du site Web d'un nom de domaine sont stockés et servis en réponse aux demandes. Vous pouvez définir la racine du document à l'emplacement de votre choix. Dans ce guide, nous utiliserons la structure de répertoires suivante :
/var/www/
├── domain1.com
│ └── public_html
├── domain2.com
│ └── public_html
├── domain3.com
│ └── public_html
Chaque domaine hébergé sur notre serveur aura sa racine de document définie sur /var/www/<domain_name>/public_html
.
Commençons par créer le répertoire racine des documents pour notre premier domaine, example.com
:
sudo mkdir -p /var/www/example.com/public_html
Nous allons également créer un index.html
fichier dans le répertoire racine des documents du domaine qui s'affichera lorsque vous visiterez le domaine dans votre navigateur.
Ouvrez votre éditeur de texte préféré, créez un nouveau fichier et collez-y ce qui suit :
/var/www/example.com/public_html/index.html<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>
Nous exécutons les commandes en tant qu'utilisateur sudo et les fichiers et répertoires nouvellement créés appartiennent à l'utilisateur root.
Pour éviter tout problème d'autorisation, nous allons changer la propriété du répertoire racine du document de domaine et de tous les fichiers de ce répertoire à l'utilisateur apache (www-data
) :
sudo chown -R www-data: /var/www/example.com
Créer un numéro d'hôte virtuel
Sur les systèmes Debian, les fichiers de configuration des hôtes virtuels Apache se trouvent dans /etc/apache2/sites-available
répertoire et peut être activé en créant des liens symboliques vers le /etc/apache2/sites-enabled
répertoire.
Ouvrez l'éditeur de texte de votre choix et créez le fichier de configuration de base de l'hôte virtuel suivant :
/etc/apache2/sites-available/example.com.conf<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
ServerName
:Le domaine qui doit correspondre à cette configuration d'hôte virtuel. Il doit s'agir de votre nom de domaine.ServerAlias
:tous les autres domaines ou sous-domaines qui doivent également correspondre à cet hôte virtuel, généralement lewww
sous-domaine.DocumentRoot
:Le répertoire à partir duquel Apache servira les fichiers du domaine.Options
:Cette directive contrôle quelles fonctionnalités du serveur sont disponibles dans un répertoire spécifique.-Indexes
:Empêche les listes de répertoires.FollowSymLinks
:Lorsque cette option est activée, Apache suivra les liens symboliques.
AllowOverride
:Spécifie les directives déclarées dans le.htaccess
fichier peut remplacer les directives de configuration.ErrorLog
,CustomLog
:spécifie l'emplacement des fichiers journaux.
Vous pouvez nommer le fichier de configuration de l'hôte virtuel comme vous le souhaitez, mais il est recommandé d'utiliser le nom de domaine comme nom du fichier de configuration.
Pour activer le nouveau fichier d'hôte virtuel, créez un lien symbolique du fichier d'hôte virtuel vers le sites-enabled
répertoire, qui est lu par Apache lors du démarrage.
Dans les systèmes Debian, vous pouvez activer l'hôte virtuel en utilisant un script d'assistance nommé a2ensite
:
sudo a2ensite example.com
L'autre option consiste à créer manuellement un lien symbolique comme indiqué ci-dessous :
sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
Une fois la configuration activée, testez si la syntaxe est correcte en tapant :
sudo apachectl configtest
S'il n'y a pas d'erreurs, vous verrez le résultat suivant :
Syntax OK
Redémarrez apache2
service pour que les modifications prennent effet :
sudo systemctl restart apache2
Pour vérifier que tout fonctionne comme prévu, ouvrez http://example.com
dans votre navigateur préféré, et vous verrez quelque chose comme ceci :
