HTTP Apache

Comment configurer Apache VirtualHost sur Ubuntu 18.04 LTS

Comment configurer Apache VirtualHost sur Ubuntu 18.04 LTS
Apache VirtualHost est utilisé pour exécuter plusieurs sites Web sur le même serveur Apache. C'est une fonctionnalité impressionnante du serveur Web Apache 2 pour le déploiement à haute densité de sites Web sur un seul serveur. Apache a deux types de configuration VirtualHost, VirtualHost basé sur IP et VirtualHost basé sur le nom.VirtualHost basé sur IP : Dans VirtualHost basé sur IP, un serveur Apache a plusieurs adresses IP et il répond avec différents sites Web en fonction de l'adresse IP.

Fig 1: VirtualHost basé sur Apache IP.

VirtualHost basé sur le nom : Dans VirtualHost basé sur le nom, un serveur Apache a une seule adresse IP et plusieurs noms de domaine configurés pour chaque site Web. Dans un serveur DNS, chacun de ces noms de domaine se voit attribuer l'adresse IP du serveur Apache. Selon le nom de domaine utilisé par le client, le serveur renvoie différents sites Web.

Fig 2: VirtualHost basé sur le nom Apache.

Dans cet article, je vais vous montrer comment configurer le VirtualHost basé sur le nom Apache. Je vais utiliser Ubuntu 18.04 LTS pour la démonstration. Mais cela devrait fonctionner sur n'importe quelle distribution Linux moderne avec peu ou pas de changement. Alors, commençons.

Installation du serveur Web Apache 2 :

Le serveur Web Apache 2 est disponible dans le référentiel de packages officiel d'Ubuntu 18.04 LTS. Ainsi, vous pouvez facilement l'installer avec le gestionnaire de packages APT.

Tout d'abord, mettez à jour le cache du référentiel de packages APT avec la commande suivante :

$ sudo apt mise à jour

Maintenant, exécutez la commande suivante pour installer le serveur Web Apache 2 :

$ sudo apt installer apache2

Maintenant, appuyez sur oui puis appuyez sur continuer.

Le serveur Web Apache 2 doit être installé.

Configuration du DNS :

Maintenant, vous devez configurer le serveur DNS pour mapper les noms de domaine que vous souhaitez utiliser pour VirtualHost à l'adresse IP de votre serveur Apache.

Vous pouvez trouver l'adresse IP de votre serveur Apache avec la commande suivante :

$ ip a | egrep "inet"

Comme vous pouvez le voir, l'adresse IP dans mon cas est 192.168.21.166. Ce sera différent pour toi. Alors, assurez-vous de le remplacer par le vôtre à partir de maintenant.

Si vous souhaitez apprendre à configurer Apache VirtualHost localement, vous pouvez utiliser le /etc/hôtes fichier pour la résolution DNS/nom local.

Pour configurer la résolution DNS locale, ouvrez le /etc/hôtes fichier avec nano comme suit:

$ sudo nano /etc/hosts

Maintenant, ajoutez la ligne comme indiqué dans la capture d'écran ci-dessous au fichier. Puis appuyez + X suivie par oui et pour enregistrer le fichier.

Maintenant, la résolution de noms locaux devrait fonctionner.

Structures de répertoire :

Je souhaite conserver toutes les données du site Web de mon Apache VirtualHost dans un répertoire spécifique /www. Ici, je veux créer un répertoire pour chaque utilisateur. Chaque utilisateur aura son propre public_html/ et journaux/ répertoire aussi.

Par exemple, pour 3 utilisateurs bob (exemple1.com), alice (exemple2.com), Linda (exemple3.com), la structure du répertoire est la suivante :

/www
- Exemple 1.com/
- www/
- public_html/
- indice.html
- journaux/
- exemple2.com/
- www/
- public_html/
- indice.html
- journaux/
- exemple3.com/
- www/
- public_html/
- indice.html
- journaux/

Un moyen simple de le faire est de créer un modèle ou un répertoire squelette et d'y placer la structure du répertoire.  Créez ensuite chaque utilisateur en utilisant ce répertoire squelette.

Tout d'abord, copiez le contenu du répertoire squelette par défaut /etc/skel vers un autre répertoire /etc/skel-www comme suit:

$ sudo cp -rv /etc/skel /etc/skel-www

Maintenant, accédez au nouveau répertoire squelette comme suit :

$ cd /etc/skel-www

Créez ensuite la structure de répertoires souhaitée dans le répertoire squelette comme suit :

$ sudo mkdir -p www/public_html,logs

Vous pouvez également créer une valeur par défaut indice.html fichier dans le public_html/ répertoire si tu veux.

$ echo "

Ça marche

" | sudo tee www/public_html/index.html

Maintenant, créez le /www répertoire avec la commande suivante :

$ sudo mkdir /www

Création d'utilisateurs :

Maintenant, vous pouvez créer l'utilisateur bob pour www.Exemple 1.com comme suit :

$ sudo useradd --create-home --home-dir /www/example1.com --shell
/bin/bash --gid www-data --skel /etc/skel-www bob

De la même manière, créez l'utilisateur alice pour www.exemple2.com comme suit :

$ sudo useradd --create-home --home-dir /www/example2.com --shell /bin/bash
--gid www-data --skel /etc/skel-www alice

Encore une fois, créez l'utilisateur linda pour www.exemple3.com comme suit :

$ sudo useradd --create-home --home-dir /www/example3.com --shell /bin/bash
--gid www-data --skel /etc/skel-www linda

Ici, j'ai affecté le groupe principal de chaque utilisateur à www-données. Par défaut, le serveur Apache s'exécute en tant que ce groupe. Si je ne l'avais pas fait, le serveur Apache ne pourra pas accéder aux fichiers dans le public_html/ répertoire et créer des fichiers journaux dans le journaux/ annuaire.

Configuration d'Apache VirtualHost :

Vous êtes maintenant prêt à configurer Apache VirtualHost pour 3 utilisateurs bob (www.Exemple 1.com), alice (www.exemple2.com) et Linda (www.exemple3.com).

Le répertoire de configuration du site Apache par défaut sur Ubuntu est /etc/apache2/sites-disponibles.

Maintenant, accédez au répertoire /etc/apache2/sites-disponibles/ comme suit.

$ cd /etc/apache2/sites-available/

Tout d'abord, créez un nouveau fichier de configuration pour bob www.Exemple 1.com.conf comme suit:

$ sudo nano www.Exemple 1.com.conf

Un éditeur de texte doit être ouvert.

Maintenant, tapez les lignes suivantes.

Exemple de nom de serveur1.com
ServerAlias ​​www.Exemple 1.com
DocumentRoot "/www/exemple1.fr/www/public_html"

Options -FollowSymLinks +MultiViews +Index
AutoriserTout remplacer
Exiger tout accordé
ErrorLog "/www/exemple1.com/www/logs/erreur.Journal"
CustomLog "/www/exemple1.fr/www/logs/access.log" combiné

REMARQUE : modifiez les textes en gras en fonction de vos besoins.

Enfin, le fichier de configuration www.Exemple.com.conf devrait ressembler à ceci. presse + X suivi de y et pour enregistrer le fichier de configuration.

pour simplement copier le fichier de configuration pour bob (www.Exemple 1.com.conf) et apporter les petits changements nécessaires.

Copiez le fichier de configuration de bob pour alice et Linda avec les commandes suivantes :

$ sudo cp -v www.Exemple 1.com.conf www.exemple2.com.conf
$ sudo cp -v www.Exemple 1.com.conf www.exemple3.com.conf

Maintenant, éditez le fichier de configuration de alice comme suit:

$ sudo nano www.exemple2.com.conf

Maintenant, changez toutes les occurrences de Exemple 1 à exemple2. Puis enregistrez le fichier.

Faire la même chose pour Linda.

$ sudo nano www.exemple3.com.conf

Changer toutes les occurrences de Exemple 1 à exemple3 et enregistrez le fichier.

Activation des configurations VirtualHost :

Maintenant, désactivez la configuration du site Web par défaut d'Apache comme suit :

$ sudo a2dissite 000-par défaut.conf

Maintenant, activez les configurations VirtualHost www.Exemple 1.com.conf, www.exemple2.com.conf, www.exemple3.com.conf comme suit:

$ sudo a2ensite www.Exemple 1.com.conf www.exemple2.com.conf www.exemple3.com.conf

Enfin, redémarrez le service Apache comme suit :

$ sudo systemctl redémarrer apache2

Test des VirtualHosts :

Maintenant, essayez d'accéder aux sites Web www.Exemple 1.com, www.exemple2.com, www.exemple3.com

Comme vous pouvez le voir, tous ces sites Web fonctionnent comme prévu.

REMARQUE: j'ai changé la page par défaut indice.html pour chaque site afin que ce soit un peu différent pour chaque site Web à des fins de test. Sinon, vous ne pourrez pas dire si la configuration de VirtualHost fonctionne ou non.

C'est ainsi que vous configurez Apache VirtualHost basé sur le nom sur Ubuntu 18.04 LTS. Merci d'avoir lu cet article.

Ports Open Source des moteurs de jeux commerciaux
Les récréations de moteur de jeu gratuites, open source et multiplateformes peuvent être utilisées pour jouer à d'anciens ainsi qu'à certains des titr...
Meilleurs jeux de ligne de commande pour Linux
La ligne de commande n'est pas seulement votre plus grand allié lorsque vous utilisez Linux, elle peut également être une source de divertissement car...
Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...