
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 explique comment configurer Apache Virtual Hosts sur un serveur CentOS 8.
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éation de la structure du 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/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
Pour chaque domaine qui sera hébergé sur le serveur, nous créerons un répertoire séparé dans /var/www
. Dans le répertoire du domaine, nous allons créer un public_html
répertoire qui sera le répertoire racine des documents du domaine et stockera les fichiers du site Web du domaine.
Commençons par créer le répertoire racine du domaine example.com
:
sudo mkdir -p /var/www/example.com/public_html
À des fins de test, créez un index.html
fichier dans le répertoire racine des documents du domaine :
sudo nano /var/www/example.com/public_html/index.html
Copiez et collez le code suivant dans le fichier :
/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>
Pour éviter tout problème d'autorisation, changez la propriété du répertoire racine du document du domaine en utilisateur apache
:
sudo chown -R apache: /var/www/example.com
Création du fichier d'hôte virtuel #
Il existe plusieurs façons de configurer un hôte virtuel. Vous pouvez soit ajouter toutes les directives d'hôte virtuel dans un seul fichier, soit créer un nouveau fichier de configuration pour chaque directive d'hôte virtuel. Généralement, vous devriez préférer la deuxième approche, qui est plus maintenable.
Par défaut, Apache est configuré pour charger tous les fichiers de configuration qui se terminent par .conf
depuis le /etc/httpd/conf.d/
répertoire.
Pour créer un hôte virtuel pour un site Web spécifique, ouvrez l'éditeur de votre choix et créez le fichier de configuration de base de l'hôte virtuel suivant :
/etc/httpd/conf.d/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 /var/log/httpd/example.com-error.log
CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>
ServerName
:Nom du domaine pour lequel la configuration de l'hôte virtuel sera utilisée. Ceci est votre nom de domaine.ServerAlias
:Tous les autres domaines pour lesquels la configuration de l'hôte virtuel sera également utilisée, tels que lewww
sous-domaine.DocumentRoot
:Le répertoire à partir duquel Apache sert les fichiers du domaine.Options
:Cette directive contrôle les fonctionnalités du serveur par répertoire.-Indexes
:Empêche les listes de répertoires.FollowSymLinks
:Cette option indique au serveur Web de suivre les liens symboliques.
AllowOverride
:Spécifie les directives déclarées dans le.htaccess
fichier peut remplacer les directives de configuration.ErrorLog
,CustomLog
:L'emplacement des fichiers journaux.
Modifiez le fichier selon vos besoins et enregistrez-le.
Le nom du fichier de configuration doit se terminer par .conf
. 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.
Testez la syntaxe du fichier de configuration avec :
sudo apachectl configtest
S'il n'y a pas d'erreurs, le résultat devrait ressembler à ceci :
Syntax OK
Pour activer un hôte virtuel nouvellement créé, redémarrez le service Apache avec :
sudo systemctl restart httpd
Ouvrez http://example.com
pour vérifier que tout fonctionne comme prévu.
