Comment configurer des hôtes virtuels Apache sur CentOS 7

introduction

Le serveur Web Apache est le moyen le plus répandu de servir du contenu Web sur Internet. Il dessert plus de la moitié des sites Web actifs d’Internet et est extrêmement puissant et flexible.

Apache décompose ses fonctionnalités et ses composants en unités individuelles pouvant être personnalisées et configurées indépendamment. L’unité de base qui décrit un site ou un domaine individuel est appelée * hôte virtuel *. Les hôtes virtuels permettent à un serveur d’héberger plusieurs domaines ou interfaces à l’aide d’un système correspondant. Ceci est pertinent pour ceux qui cherchent à héberger plus d’un site sur un seul VPS.

Chaque domaine configuré dirigera le visiteur vers un répertoire spécifique contenant les informations de ce site, sans jamais indiquer que le même serveur est également responsable des autres sites. Ce schéma est extensible sans aucune limite logicielle, tant que votre serveur peut gérer le trafic que tous les sites attirent.

Dans ce guide, nous expliquerons comment configurer des hôtes virtuels Apache sur un VPS CentOS 7. Au cours de ce processus, vous apprendrez à diffuser un contenu différent à différents visiteurs en fonction du domaine demandé.

Conditions préalables

Avant de commencer avec ce guide, vous devez d’abord suivre certaines étapes.

Vous aurez besoin d’un accès à un serveur CentOS 7 avec un utilisateur non root disposant des privilèges sudo +. Si vous ne l’avez pas encore configuré, vous pouvez consulter le CentOS 7 Guide de configuration du serveur initial pour créer ce dossier. Compte.

Apache devra également être installé pour pouvoir configurer des hôtes virtuels. Si vous ne l’avez pas déjà fait, vous pouvez utiliser + yum + pour installer Apache via les référentiels de logiciels par défaut de CentOS:

sudo yum -y install httpd

Activez ensuite Apache en tant que service CentOS pour qu’il démarre automatiquement après un redémarrage:

sudo systemctl enable httpd.service

Une fois ces étapes terminées, connectez-vous en tant que votre compte d’utilisateur non root via SSH et poursuivez avec le tutoriel.

Si vous ne possédez aucun domaine réel, nous vous montrerons comment tester votre configuration d’hôte virtuel avec des valeurs factices vers la fin du didacticiel.

Première étape - Créer la structure du répertoire

Premièrement, nous devons créer une structure de répertoires qui contiendra les données du site à servir aux visiteurs.

Notre * document racine * (le répertoire de niveau supérieur que Apache recherche pour trouver le contenu à servir) sera défini sur des répertoires individuels dans le répertoire + / var / www +. Nous allons créer un répertoire ici pour chacun des hôtes virtuels que nous prévoyons de créer.

Dans chacun de ces répertoires, nous allons créer un répertoire + public_html + qui contiendra nos fichiers réels. Cela nous donne une certaine flexibilité dans notre hébergement.

Nous pouvons créer ces répertoires en utilisant la commande + mkdir + (avec un drapeau + -p + qui nous permet de créer un dossier avec un dossier imbriqué à l’intérieur de celui-ci):

sudo mkdir -p /var/www//public_html
sudo mkdir -p /var/www//public_html

Rappelez-vous que les portions dans représentent les noms de domaine que nous voulons servir à partir de notre VPS.

Deuxième étape - Accorder des autorisations

Nous avons maintenant la structure de répertoires pour nos fichiers, mais ils appartiennent à notre utilisateur + root +. Si nous voulons que notre utilisateur habituel puisse modifier les fichiers de vos répertoires web, nous pouvons changer la propriété avec + chown:

sudo chown -R $USER:$USER /var/www//public_html
sudo chown -R $USER:$USER /var/www//public_html

La variable + $ USER + prendra la valeur de l’utilisateur avec lequel vous êtes actuellement connecté lorsque vous envoyez la commande. Ce faisant, notre utilisateur habituel possède maintenant les sous-répertoires + public_html + où nous allons stocker notre contenu.

Nous devrions également modifier un peu nos autorisations pour nous assurer que l’accès en lecture est autorisé pour le répertoire Web général, ainsi que pour tous les fichiers et dossiers qu’il contient, afin que les pages puissent être servies correctement:

sudo chmod -R 755 /var/www

Votre serveur Web doit maintenant disposer des autorisations nécessaires pour diffuser du contenu et votre utilisateur doit pouvoir créer du contenu dans les dossiers appropriés.

Troisième étape - Créer des pages de démonstration pour chaque hôte virtuel

Maintenant que notre structure de répertoires est en place, créons du contenu à servir.

Parce que ceci est juste pour la démonstration et les tests, nos pages seront très simples. Nous allons simplement créer une page + index.html pour chaque site identifiant ce domaine spécifique.

Commençons par ++. Nous pouvons ouvrir un fichier + index.html dans notre éditeur en tapant:

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

Dans ce fichier, créez un document HTML simple indiquant le site auquel la page est connectée. Pour ce guide, le fichier de notre premier domaine ressemblera à ceci:

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

Enregistrez et fermez le fichier lorsque vous avez terminé.

Nous pouvons copier ce fichier pour l’utiliser comme modèle pour + index.html + de notre deuxième site en tapant:

cp /var/www//public_html/index.html /var/www//public_html/index.html

Maintenant ouvrons ce fichier et modifions les informations pertinentes:

nano /var/www//public_html/index.html
<html>
 <head>
   <title>Welcome to !</title>
 </head>
 <body>
   <h1>Success! The  virtual host is working!</h1>
 </body>
</html>

Enregistrez et fermez également ce fichier. Vous avez maintenant les pages nécessaires pour tester la configuration de l’hôte virtuel.

Quatrième étape - Créer de nouveaux fichiers d’hôte virtuel

Les fichiers hôtes virtuels spécifient la configuration de nos sites distincts et dictent la manière dont le serveur Web Apache répondra aux différentes demandes de domaine.

Pour commencer, nous devrons configurer le répertoire dans lequel nos hôtes virtuels seront stockés, ainsi que le répertoire qui indique à Apache qu’un hôte virtuel est prêt à être utilisé par les visiteurs. Le répertoire + sites-available + conservera tous nos fichiers d’hôtes virtuels, tandis que le répertoire + sites-enabled + contiendra des liens symboliques vers les hôtes virtuels que nous souhaitons publier. Nous pouvons créer les deux répertoires en tapant:

sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
  • Remarque: * Cette structure de répertoires a été introduite par les contributeurs Debian, mais nous l’incluons ici pour une flexibilité accrue dans la gestion de nos hôtes virtuels (car il est plus facile d’activer et de désactiver temporairement les hôtes virtuels de cette façon).

Ensuite, nous devrions demander à Apache de rechercher des hôtes virtuels dans le répertoire `+ sites + + +. Pour ce faire, nous allons éditer le fichier de configuration principal d’Apache et ajouter une ligne déclarant un répertoire facultatif pour d’autres fichiers de configuration:

sudo nano /etc/httpd/conf/httpd.conf

Ajoutez cette ligne à la fin du fichier:

IncludeOptional sites-enabled/*.conf

Enregistrez et fermez le fichier lorsque vous avez terminé d’ajouter cette ligne. Nous sommes maintenant prêts à créer notre premier fichier d’hôte virtuel.

Créer le premier fichier d’hôte virtuel

Commencez par ouvrir le nouveau fichier dans votre éditeur avec les privilèges root:

sudo nano /etc/httpd/sites-available/.conf
  • Remarque: * En raison des configurations que nous avons décrites, tous les fichiers d’hôte virtuel must se terminent par + .conf +.

Commencez par créer une paire de balises désignant le contenu en tant qu’hôte virtuel à l’écoute sur le port 80 (le port HTTP par défaut):

<VirtualHost *:80>

</VirtualHost>

Ensuite, nous allons déclarer le nom du serveur principal,. Nous allons également créer un alias de serveur sur lequel pointer pour que les requêtes et le même contenu soient livrés:

<VirtualHost *:80>
   ServerName
   ServerAlias
</VirtualHost>

Enfin, nous finirons par pointer vers le répertoire racine de nos documents Web accessibles au public. Nous indiquerons également à Apache où stocker les journaux d’erreur et de demande pour ce site particulier:

<VirtualHost *:80>

   ServerName
   ServerAlias
   DocumentRoot /var/www//public_html
   ErrorLog /var/www//error.log
   CustomLog /var/www//requests.log combined
</VirtualHost>

Lorsque vous avez terminé d’écrire ces éléments, vous pouvez enregistrer et fermer le fichier.

Copier le premier hôte virtuel et personnaliser pour des domaines supplémentaires

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

Commencez par le copier avec + cp +:

sudo cp /etc/httpd/sites-available/.conf /etc/httpd/sites-available/.conf

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

sudo nano /etc/httpd/sites-available/.conf

Vous devez maintenant modifier toutes les informations pour référencer votre deuxième domaine. Lorsque vous avez terminé, votre deuxième fichier d’hôte virtuel peut ressembler à ceci:

<VirtualHost *:80>
   ServerName
   DocumentRoot /var/www//public_html
   ServerAlias
   ErrorLog /var/www//error.log
   CustomLog /var/www//requests.log combined
</VirtualHost>

Lorsque vous avez terminé ces modifications, vous pouvez enregistrer et fermer le fichier.

Cinquième étape - Activer les nouveaux fichiers d’hôte virtuel

Maintenant que nous avons créé nos fichiers d’hôte virtuel, nous devons les activer afin qu’Apache sache les servir aux visiteurs. Pour ce faire, nous pouvons créer un lien symbolique pour chaque hôte virtuel dans le répertoire + sites-enabled +:

sudo ln -s /etc/httpd/sites-available/.conf /etc/httpd/sites-enabled/.conf
sudo ln -s /etc/httpd/sites-available/.conf /etc/httpd/sites-enabled/.conf

Lorsque vous avez terminé, redémarrez Apache pour que ces modifications prennent effet:

sudo apachectl restart

Étape 6 - Configuration du fichier d’hôtes locaux (facultatif)

Si vous utilisiez des exemples de domaines au lieu de domaines réels pour tester cette procédure, vous pouvez toujours tester les fonctionnalités de vos hôtes virtuels en modifiant temporairement le fichier + hosts + sur votre ordinateur local. Cela interceptera toutes les demandes pour les domaines que vous avez configurés et les dirigera vers votre serveur VPS, comme le ferait le système DNS si vous utilisiez des domaines enregistrés. Cela ne fonctionnera que sur votre ordinateur, cependant, et est simplement utile à des fins de test.

  • Remarque: * Assurez-vous que vous opérez sur votre ordinateur local pour ces étapes et non sur votre serveur VPS. Vous aurez besoin d’accéder aux informations d’identification administratives pour cet ordinateur.

Si vous êtes sur un ordinateur Mac ou Linux, éditez votre fichier + hosts + local avec des privilèges administratifs en tapant:

sudo nano /etc/hosts

Si vous utilisez une machine Windows, vous pouvez trouver des instructions sur la modification de votre fichier hôtes here.

Les détails que vous devez ajouter sont l’adresse IP publique de votre VPS, suivie du domaine que vous souhaitez utiliser pour atteindre ce VPS:

127.0.0.1   localhost
127.0.1.1   guest-desktop

Cela dirigera toutes les demandes de ` et ` sur notre ordinateur local et les enverra à notre serveur à ++.

Septième étape - Testez vos résultats

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

http://

Vous devriez voir une page qui ressemble à ceci:

image: https: //assets.digitalocean.com/articles/apache_virt_hosts_centos7/virtual_host_success.png [Succès! L’hôte virtuel example.com fonctionne!]

De même, si vous visitez vos autres domaines, vous verrez les fichiers que vous avez créés pour eux.

Si tous les sites que vous avez configurés fonctionnent correctement, vous avez correctement configuré vos nouveaux hôtes virtuels Apache sur le même serveur CentOS.

Si vous avez ajusté le fichier + hôtes + de votre ordinateur personnel, vous souhaiterez peut-être supprimer les lignes que vous avez ajoutées maintenant que vous avez vérifié que votre configuration fonctionne. Cela empêchera votre fichier hôtes d’être rempli avec des entrées qui ne sont pas réellement nécessaires.

Conclusion

À ce stade, vous devriez maintenant disposer d’un seul serveur CentOS 7 gérant plusieurs sites avec des domaines distincts. Vous pouvez développer ce processus en suivant les étapes décrites ci-dessus pour créer ultérieurement des hôtes virtuels supplémentaires. Il n’y a pas de limite logicielle au nombre de noms de domaine qu’Apache peut gérer. N’hésitez donc pas à en créer autant que votre serveur est capable de gérer.