Apache Virtual Hosts vous permet d'exécuter plusieurs sites Web sur une seule machine. Avec les hôtes virtuels, vous pouvez spécifier la racine du document du site (le répertoire contenant les fichiers du site Web), créer une politique de sécurité distincte pour chaque site, utiliser différents certificats SSL, et bien plus encore.
Cet article décrit comment configurer les hôtes virtuels Apache sur un serveur Debian 10.
Prérequis #
Assurez-vous que vous avez satisfait aux exigences suivantes avant de poursuivre ce didacticiel :
- Nom de domaine pointant vers l'adresse IP de votre serveur public.
- Apache installé sur votre système CentOS.
- Vous êtes connecté en tant que root ou utilisateur avec des privilèges sudo.
Créer la structure de répertoire #
La racine du document est le répertoire dans lequel les fichiers du site Web d'un nom de domaine sont stockés et servis en réponse aux demandes. La racine du document peut être définie sur n'importe quel emplacement de votre choix.
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 le serveur aura sa racine de document définie sur /var/www/<domain_name>/public_html
.
Commençons par créer le répertoire racine du document pour le 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>
Étant donné que les commandes ci-dessus sont exécutées en tant qu'utilisateur sudo, les fichiers et répertoires nouvellement créés appartiennent à root. Pour éviter tout problème d'autorisation, changez la propriété du répertoire racine du document de domaine et de tous les fichiers du répertoire pour 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, qui est lu par Apache lors du démarrage.
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.
Modifiez le fichier selon vos besoins et enregistrez-le.
Vous pouvez nommer le fichier de configuration comme vous le souhaitez. La meilleure pratique consiste à utiliser le nom de domaine comme nom du fichier de configuration de l'hôte virtuel.
Pour activer le nouveau fichier d'hôte virtuel, utilisez le a2ensite
script d'assistance qui crée un lien symbolique entre le fichier de l'hôte virtuel et le sites-enabled
répertoire :
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 :
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 :