Apache est divisé en unités qui peuvent être personnalisées et configurées individuellement. Ces sections sont appelées hôtes virtuels.
Les hôtes virtuels permettent à l'administrateur d'utiliser un serveur pour héberger de nombreux domaines à l'aide d'une seule IP. Ceci est utile pour quiconque souhaite héberger plusieurs sites Web sur le même VPS, sans jamais indiquer que le même serveur héberge également d'autres sites. Ce processus peut être répété sans limite, en fonction de la charge que votre serveur peut gérer.
Afin de suivre ces étapes, vous devrez disposer:
- Un utilisateur non root.
- Apache installé.
- Configurez vos noms de domaine pour pointer vers votre VPS.
Ma configuration fera des hôtes virtuels pour test1.com
et test2.com
. Vous devez les remplacer par vos propres domaines.
Créer les répertoires
La racine du document sera définie dans des répertoires individuels sous le /var/www
dossier. Créez un répertoire ici pour les deux hôtes virtuels, comme ceci:
sudo mkdir /var/www/test1
sudo mkdir /var/www/test2
Autorisations
Les répertoires que vous avez créés appartiennent à l'utilisateur root. Vous devez changer la propriété de l'utilisateur normal pour pouvoir modifier les fichiers. $USER
est l'utilisateur auquel vous êtes actuellement connecté.
sudo chown -R $USER:$USER /var/www/test1
sudo chown -R $USER:$USER /var/www/test2
Vous devez également modifier les autorisations sur le répertoire Web général et tous les fichiers et dossiers qu'il contient.
sudo chmod -R 755 /var/www
Créez des pages pour chaque hôte virtuel
Créez une index.html
page pour chaque site.
nano /var/www/test1/index.html
Dans ce fichier HTML, vous pouvez placer du contenu simple juste pour indiquer que votre configuration fonctionne. Par exemple, mon fichier ressemble à ceci.
<html>
<head>
<title>test1</title>
</head>
<body>
<h1>test1.com virtual host !</h1>
</body>
</html>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Copiez maintenant ce fichier sur le deuxième site.
cp /var/www/test1/index.html /var/www/test2/index.html
Vous pouvez ensuite l'ouvrir et le modifier.
nano /var/www/test2/index.html
<html>
<head>
<title>test2</title>
</head>
<body>
<h1>test2.com virtual host !</h1>
</body>
</html>
Enregistrez et fermez ce fichier lorsque vous avez terminé.
Créer des fichiers hôtes virtuels
Les fichiers d'hôte virtuel spécifient la configuration de nos hôtes virtuels et dictent la façon dont le serveur Web Apache répondra aux différentes demandes de domaine.
Apache est livré avec un fichier d'hôte virtuel par défaut, 000-default.conf
. Copiez ce fichier et modifiez-le pour le premier domaine.
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test1.conf
sudo nano /etc/apache2/sites-available/test1.conf
Le fichier ressemblera à ceci (sans commentaires):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
</VirtualHost>
Remplacez la ServerAdmin
directive par l'e-mail par lequel l'administrateur du site peut recevoir des e-mails. Ensuite, vous devez ajouter trois directives:
- ServerName - domaine de base pour cet hôte virtuel.
- ServerAlias - définit d'autres noms qui doivent correspondre au nom de base, comme www.
- DocumentRoot - l'emplacement de la racine du document pour ce domaine.
Le fichier d'hôte virtuel doit ressembler à ce qui suit.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test1.com
ServerAlias www.test1.com
DocumentRoot /var/www/test1
</VirtualHost>
Enregistrez et fermez le fichier.
Vous pouvez faire de même avec le deuxième domaine.
sudo cp /etc/apache2/sites-available/test1.conf /etc/apache2/sites-available/test2.conf
sudo nano /etc/apache2/sites-available/test2.conf
Vous devez maintenant le modifier pour référencer votre deuxième domaine.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test2.com
ServerAlias www.test2.com
DocumentRoot /var/www/test2
</VirtualHost>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Activer les fichiers hôtes virtuels
L' a2ensite
outil peut être utilisé pour activer chacun de nos sites comme ceci:
sudo a2ensite test1.conf
sudo a2ensite test2.conf
Lorsque vous avez terminé, vous devez redémarrer Apache pour que ces modifications prennent effet:
sudo service apache2 restart
Si vous recevez ce message:
*Restarting web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set >the 'ServerName' directive globally to suppress this message
... ne vous inquiétez pas, cela n'affecte pas nos sites.
Étapes finales
Maintenant que vos hôtes virtuels sont configurés, vous pouvez les tester en accédant aux domaines que vous avez configurés dans votre navigateur Web:
- http://test1.com
- http://test2.com
Si ces deux sites fonctionnent, vous avez correctement configuré deux hôtes virtuels sur le même serveur.