Comment configurer des hôtes virtuels Apache sur Ubuntu 18.04

introduction

Ce didacticiel vous guidera dans la configuration de plusieurs domaines et sites Web à l’aide d’hôtes virtuels Apache sur un serveur Ubuntu 18.04. Au cours de ce processus, vous apprendrez à diffuser différents contenus à différents visiteurs en fonction des domaines qu’ils demandent.

Conditions préalables

Pour terminer ce didacticiel, vous aurez besoin d’accéder aux éléments suivants sur un serveur Ubuntu 18.04:

  • Un utilisateur sudo sur votre serveur
  • Un serveur Web Apache2, que vous pouvez installer avec
sudo apt install apache2

Étape 1 – Créer la structure de répertoires

Nous allons d’abord créer une structure de répertoire qui contiendra les données du site que nous servirons aux visiteurs dans notre répertoire Apache de niveau supérieur. Nous utiliserons des exemples de noms de domaine, mis en évidence ci-dessous. Vous devez les remplacer par vos noms de domaine réels.

sudo mkdir -p / var / www / example.com / public_html
sudo mkdir -p / var / www / test.com / public_html

Étape 2 – Accorder des autorisations

Nous devons maintenant modifier les autorisations de notre utilisateur non root actuel pour pouvoir modifier les fichiers.

sudo chown -R $ USER: $ USER / var / www / example.com / public_html
sudo chown -R $ USER: $ USER / var / www / test.com / public_html

De plus, nous nous assurerons que l’accès en lecture est autorisé au répertoire Web général et à tous les fichiers et dossiers qu’il contient afin que les pages puissent être servies correctement.

sudo chmod -R 755 / var / www

Étape 3 – Créez des pages de démonstration pour chaque hôte virtuel

Créons du contenu à servir, nous ferons une page de démonstration index.html pour chaque site. Nous pouvons ouvrir un fichier index.html dans un éditeur de texte pour notre premier site, en utilisant nano par exemple.

nano / var / www / example.com /public_html/index.html

Dans ce fichier, créez un document HTML spécifique au domaine, comme suit: /var/www/example.com/public_html/index.html

<html> <head> <title>Welcome to Example.com !</title> </head> <body> <h1>Success! The example.com virtual host is working!</h1> </body> </html>

Enregistrez et fermez le fichier, puis copiez ce fichier pour l’utiliser comme base pour notre deuxième site:

cp / var / www / example.com /public_html/index.html / var / www / test.com /public_html/index.html

Ouvrez le fichier et modifiez les informations pertinentes:

nano / var / www / test.com /public_html/index.html

/var/www/test.com/public_html/index.html

<html> <head> <title>Welcome to Test.com !</title> </head> <body> <h1>Success! The test.com virtual host is working!</h1> </body> </html>

Enregistrez et fermez également ce fichier.

Étape 4 – Créer de nouveaux fichiers hôtes virtuels

Apache est livré avec un fichier hôte virtuel par défaut appelé 000-default.conf que nous utiliserons comme modèle. Nous allons le copier pour créer un fichier hôte virtuel pour chacun de nos domaines.

Créer le premier fichier hôte virtuel

Commencez par copier le fichier du premier domaine:

sudo cp /etc/apache2/sites-available/000-default.conf / etc / apache2 / sites-available / example.com .conf

Ouvrez le nouveau fichier dans votre éditeur (nous utilisons nano ci-dessous) avec les privilèges root:

sudo nano / etc / apache2 / sites-available / example.com .conf

Nous personnaliserons ce fichier pour notre propre domaine. Modifiez le texte en surbrillance ci-dessous pour vos propres circonstances. /etc/apache2/sites-available/example.com.conf

<VirtualHost *:80> ServerAdmin admin@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/ example.com /public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

À ce stade, enregistrez et fermez le fichier.

Copiez le premier hôte virtuel et personnalisez-le pour le deuxième domaine

Maintenant que notre premier fichier hôte virtuel est établi, nous pouvons créer notre deuxième en copiant ce fichier et en l’ajustant au besoin.

Commencez par le copier:

sudo cp / etc / apache2 / sites-available / example.com .conf / etc / apache2 / sites-available / test.com .conf

Ouvrez le nouveau fichier avec les privilèges root dans votre éditeur:

sudo nano / etc / apache2 / sites-available / test.com .conf

Vous devez maintenant modifier toutes les informations pour référencer votre deuxième domaine. Le fichier final devrait ressembler à ceci, avec du texte en surbrillance correspondant à vos propres informations de domaine pertinentes. /etc/apache2/sites-available/test.com.conf

<VirtualHost *:80> ServerAdmin admin@test.com ServerName test.com ServerAlias www.test.com DocumentRoot /var/www/ test.com /public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Enregistrez et fermez le fichier lorsque vous avez terminé.

Étape 5 – Activer les nouveaux fichiers hôtes virtuels

Une fois nos fichiers hôtes virtuels créés, nous devons les activer. Nous utiliserons l’outil a2ensite pour atteindre cet objectif.

sudo a2ensite example.com .conf
sudo a2ensite test.com .conf

Ensuite, désactivez le site par défaut défini dans 000-default.conf :

sudo a2dissite 000-default.conf

Lorsque vous avez terminé, vous devez redémarrer Apache pour que ces modifications prennent effet et utiliser l’ systemctl status pour vérifier la réussite du redémarrage.

sudo systemctl restart apache2

Votre serveur doit maintenant être configuré pour desservir deux sites Web.

Étape 6 – Configurer le fichier des hôtes locaux (facultatif)

Si vous n’avez pas utilisé les noms de domaine réels que vous possédez pour tester cette procédure et que vous avez utilisé des exemples de domaines à la place, vous pouvez tester votre travail en modifiant temporairement le fichier hosts sur votre ordinateur local.

Sur une machine Mac ou Linux locale, tapez ce qui suit:

sudo nano / etc / hosts
Pour une machine Windows modifier votre fichier host.

En utilisant les domaines utilisés dans ce guide et en remplaçant l’IP de votre serveur par le texte your_server_IP , votre fichier devrait ressembler à ceci: / etc / hosts

127.0.0.1 localhost 127.0.1.1 guest-desktop your_server_IP example.com your_server_IP test.com

Enregistrez et fermez le fichier. Cela dirigera toutes les demandes de example.com et test.com sur notre ordinateur et les enverra à notre serveur.

Étape 7 – Testez vos résultats

Maintenant que vos hôtes virtuels sont configurés, vous pouvez tester votre configuration en accédant aux domaines que vous avez configurés dans votre navigateur Web:

 http:// example.com 

Vous devriez voir une page qui ressemble à ceci:

Exemple d'hôte virtuel Apache

Vous pouvez également visiter votre deuxième page et voir le fichier que vous avez créé pour votre deuxième site.

 http:// test.com 
Test d'hôte virtuel Apache

Si ces deux sites fonctionnent comme prévu, vous avez configuré deux hôtes virtuels sur le même serveur.

Si vous avez ajusté le fichier d’hôtes de votre ordinateur personnel, supprimez les lignes que vous avez ajoutées.