Qu'est-ce que les hôtes virtuels Apache ?
Hôte virtuel terme fait référence à la méthode d'exécution de plusieurs sites Web tels que host1.domain.com, host2.domain.com ou www.domain1.com, www.domain2.com etc., sur un seul système. Il existe deux types d'hébergement virtuel dans Apache, à savoir basé sur IP hébergement virtuel et basé sur le nom hébergement virtuel. Avec l'hébergement virtuel basé sur IP, vous pouvez héberger plusieurs sites Web ou domaines sur le même système, mais chaque site Web/domaine a une adresse IP différente. Avec l'hébergement virtuel basé sur le nom, vous pouvez héberger plusieurs sites Web/domaines sur la même adresse IP. L'hébergement virtuel peut être utile si vous souhaitez héberger plusieurs sites Web et domaines à partir d'un seul serveur physique ou VPS. J'espère que vous avez compris l'idée de base des hôtes virtuels Apache. Aujourd'hui, nous allons voir comment configurer les hôtes virtuels Apache dans Ubuntu 18.04 LTS.
Télécharger - Ebook gratuit :"Livre de recettes du serveur HTTP Apache"Configurer les hôtes virtuels Apache dans Ubuntu 18.04 LTS
L'adresse IP de mon boîtier de test est 192.168.225.22 et le nom d'hôte est ubuntuserver .
Tout d'abord, nous verrons comment configurer des hôtes virtuels basés sur le nom dans le serveur Web Apache.
Configurer des hôtes virtuels basés sur le nom
Assurez-vous d'avoir installé le serveur Web Apache. Pour l'installer sur Ubuntu, exécutez :
$ sudo apt-get install apache2
Une fois apache installé, testez s'il fonctionne ou non en parcourant la page de test apache dans le navigateur.
Ouvrez votre navigateur Web et pointez-le vers http://IP_Address ou http://localhost . Vous devriez voir une page comme ci-dessous.
Bon! Le serveur Web Apache est opérationnel !
Je vais créer deux hôtes virtuels, à savoir ostechnix1.lan et ostechnix2.lan .
Créons un répertoire pour le premier hôte virtuel ostechnix1.lan. Ce répertoire est nécessaire pour stocker les données de nos hôtes virtuels.
Pour ce faire, saisissez :
$ sudo mkdir -p /var/www/html/ostechnix1.lan/public_html
De même, créez un répertoire pour le deuxième hôte virtuel ostechnix2.lan comme indiqué ci-dessous.
$ sudo mkdir -p /var/www/html/ostechnix2.lan/public_html
Les deux répertoires ci-dessus appartiennent à l'utilisateur root. Nous devons changer la propriété de l'utilisateur normal.
Pour ce faire, exécutez :
$ sudo chown -R $USER:$USER /var/www/html/ostechnix1.lan/public_html
$ sudo chown -R $USER:$USER /var/www/html/ostechnix2.lan/public_html
Ici, $USER fait référence à l'utilisateur actuellement connecté.
Ensuite, définissez les autorisations de lecture sur le répertoire racine d'Apache, c'est-à-dire /var/www/html/ à l'aide de la commande :
$ sudo chmod -R 755 /var/www/html/
Nous le faisons parce que nous avons déjà créé un répertoire séparé pour chaque hôte virtuel pour stocker leurs données. Nous avons donc défini le répertoire racine apache en lecture seule pour tous les utilisateurs, à l'exception de l'utilisateur racine.
Nous avons créé les répertoires requis pour stocker les données de chaque hôte virtuel, configurer les autorisations appropriées. Il est maintenant temps de créer des exemples de pages qui seront servies à partir de chaque hôte virtuel.
Créons un exemple de page pour le site ostechnix1.lan. Pour ce faire, exécutez :
$ sudo vi /var/www/html/ostechnix1.lan/public_html/index.html
Ajoutez-y les lignes suivantes :
<html> <head> <title>www.ostechnix.lan</title> </head> <body> <h1>Hello, This is a test page for ostechnix1.lan website</h1> </body> </html>
Enregistrez et fermez le fichier.
De même, créez une page d'exemple pour le site ostechnix2.lan :
$ sudo vi /var/www/html/ostechnix2.lan/public_html/index.html
Ajoutez-y les lignes suivantes :
<html> <head> <title>www.ostechnix.lan</title> </head> <body> <h1>Hello, This is a test page for ostechnix2.lan website</h1> </body> </html>
Enregistrez et fermez le fichier.
Ensuite, nous devons créer des fichiers de configuration pour chaque hôte virtuel. Faisons d'abord cela pour le site ostechnix1.lan.
Copiez le fichier d'hôte virtuel par défaut appelé 000-default.conf contenu dans les nouveaux fichiers d'hôte virtuel comme ci-dessous.
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ostechnix1.lan.conf
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/ostechnix2.lan.conf
N'oubliez pas que vous devez enregistrer tous les fichiers de configuration avec .conf extension à la fin, sinon cela ne fonctionnera pas.
Maintenant, modifiez les fichiers de configuration pour qu'ils correspondent à nos hôtes virtuels.
Modifier ostechnix.lan1.conf fichier :
$ sudo vi /etc/apache2/sites-available/ostechnix1.lan.conf
Éditez/modifiez les correspondances des valeurs ServerAdmin, ServerName, ServerAlias et DocumentRoot avec l'hôte virtuel.
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin [email protected] ServerName ostechnix1.lan ServerAlias www.ostechnix1.lan DocumentRoot /var/www/html/ostechnix1.lan/public_html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>
Enregistrez et fermez le fichier.
Ensuite, modifiez ostechnix2.lan.conf fichier :
$ sudo vi /etc/apache2/sites-available/ostechnix2.lan.conf
Apportez les modifications nécessaires.
<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin [email protected] ServerName ostechnix2.lan ServerAlias www.ostechnix2.lan DocumentRoot /var/www/html/ostechnix2.lan/public_html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost>
Enregistrez/fermez le fichier.
Après avoir apporté les modifications nécessaires, désactivez le fichier de configuration de l'hôte virtuel par défaut, c'est-à-dire 000.default.conf , et activez tous les fichiers de configuration d'hôte virtuel nouvellement créés, comme indiqué ci-dessous.
$ sudo a2dissite 000-default.conf
$ sudo a2ensite ostechnix1.lan.conf
$ sudo a2ensite ostechnix2.lan.conf
Redémarrez le serveur Web apache pour que les modifications prennent effet.
$ sudo systemctl restart apache2
C'est ça. Nous avons configuré avec succès des hôtes virtuels dans Apache. Allons-y et vérifions s'ils fonctionnent ou non.
Ouvrez le fichier /etc/hosts dans n'importe quel éditeur :
$ sudo vi /etc/hosts
Ajoutez tous vos sites Web/domaines virtuels un par un comme ci-dessous.
[...] 192.168.225.22 ostechnix1.lan 192.168.225.22 ostechnix2.lan [...]
Veuillez noter que si vous souhaitez accéder aux hôtes virtuels à partir de n'importe quel système distant, vous devez ajouter les lignes ci-dessus dans le fichier /etc/hosts de chaque système distant.
Enregistrez et fermez le fichier.
Ouvrez votre navigateur Web et pointez-le vers http://ostechnix1.lan ou http://ostechnix2.lan .
page de test ostechnix1.lan :
page de test ostechnix2.lan :
Toutes nos félicitations! Vous pouvez désormais accéder à tous vos sites Web. À partir de maintenant, vous pouvez télécharger les données et les diffuser à partir de différents sites Web.
Comme vous l'avez remarqué, nous avons utilisé la même adresse IP (c'est-à-dire 192.168.225.22) pour héberger deux sites Web différents (http://ostechnix1.lan et http://ostechnix2.lan). C'est ce que nous appelons l'hébergement virtuel basé sur le nom. J'espère que cela t'aides. Je vais vous montrer comment configurer l'hébergement virtuel basé sur IP dans le prochain guide. D'ici là, restez à l'écoute !