Apache Virtual Hosts vous permet d'héberger plusieurs sites Web sur un seul serveur. Apache divisera ses fonctionnalités et ses composants en unités individuelles afin que nous puissions les personnaliser indépendamment.
Chez LinuxAPT, dans le cadre de nos services de gestion de serveur, nous aidons régulièrement nos clients à effectuer des requêtes associées sur les hôtes virtuels Apache.
Dans ce contexte, nous verrons comment configurer Apache Virtual Hosts sur un serveur Ubuntu 18.04.
Comment créer des hôtes virtuels sur Ubuntu ?
Avec les hôtes virtuels, nous pouvons spécifier une racine de document de site Web distincte, une politique de sécurité, utiliser différents certificats SSL et bien plus encore.
Avant de procéder à cette procédure, nous devons nous assurer que les conditions suivantes sont remplies :
- Un serveur Ubuntu 18.04 avec un utilisateur non root avec des privilèges sudo.
- Apache doit être installé et configuré, comme indiqué dans Comment installer Apache sur un serveur Ubuntu 18.04.
- Un nom de domaine doit pointer vers l'adresse IP de votre serveur.
1. Créer la structure du répertoire
Dans un premier temps, nous devons créer un répertoire dans lequel nous stockerons les fichiers de site Web d'un domaine et fournirons une réponse aux visiteurs du site Web.
Généralement, il s'appelait DocumentRoot.
je. Vous pouvez définir la racine du document à n'importe quel emplacement de votre choix, mais il est préférable de définir la structure des répertoires.
Nous stockerons donc tout sur /var/www :
/var/www/
├── example1.com
│ └── public_html
├── linuxapt.com
│ └── public_html
Fondamentalement, nous allons créer un répertoire séparé dans le répertoire /var/www pour chaque domaine que nous souhaitons héberger sur notre serveur.
ii. À l'intérieur de ces répertoires, nous allons créer un répertoire public_html qui stockera les fichiers du site Web du domaine :
$ sudo mkdir -p /var/www/example.com/public_html
Créez un fichier index.html dans le répertoire racine du document du domaine à des fins de test. Par défaut, cette page s'affichera lorsque les visiteurs visiteront votre site Web.
iii. Pour créer un nouveau fichier index.html à l'aide de votre type d'éditeur de texte préféré :
$ sudo nano /var/www/example.com/public_html/index.html
iv. Après cela, ajoutez-y les lignes ci-dessous :
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome!!</title>
</head>
<body>
<h1>Great! example.com set up completed!</h1>
</body>
</html>
Toutes les commandes sont exécutées en tant qu'utilisateur sudo et les fichiers et répertoires nouvellement créés appartiennent à l'utilisateur root.
Nous devons donc changer la propriété des répertoires racine des documents pour éviter les problèmes d'autorisation pour notre utilisateur habituel.
Ainsi, l'utilisateur régulier peut modifier les fichiers de nos répertoires Web sans aucun problème :
$ sudo chown -R www-data: /var/www/example.com
2. Créer des fichiers d'hôte virtuel
Les fichiers de configuration des hôtes virtuels Apache seront stockés dans le répertoire /etc/apache2/sites-available et nous pouvons l'activer en créant des liens symboliques vers le répertoire /etc/apache2/sites-enabled.
Créez un nouveau fichier à l'aide de l'éditeur de texte de votre choix en tapant :
$ sudo nano /etc/apache2/sites-available/example.com.conf
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>
- ServerName :il doit s'agir de votre nom de domaine et correspondre à la configuration de l'hôte virtuel.
- ServerAlias :tous les autres domaines ou sous-domaines qui doivent également correspondre à cet hôte virtuel, généralement le sous-domaine www.
- DocumentRoot :chemin du répertoire de l'hôte virtuel à partir duquel Apache servira les fichiers du domaine.
- Options :cette directive contrôle les fonctionnalités du serveur disponibles dans un répertoire spécifique.
- -Index :cela empêchera les listes de répertoires.
- FollowSymLinks :Apache suivra les liens symboliques si cette option est activée.
- AllowOverride :spécifie quelles directives déclarées dans le fichier .htaccess peuvent remplacer les directives de configuration.
- ErrorLog, CustomLog :spécifie l'emplacement des fichiers journaux.
Vous pouvez donner n'importe quel nom à votre fichier de configuration, mais il est recommandé de donner le même nom de fichier que le nom de domaine.
Maintenant, nous allons créer un lien symbolique dans le répertoire /etc/apache2/sites-enabled pour activer le site Web nouvellement créé.
Par défaut, les systèmes Ubuntu ont un script d'assistance pour créer des liens symboliques. Pour créer à l'aide du script d'assistance a2ensite, exécutez la commande suivante :
$ sudo a2ensite example.com
Vous pouvez également créer manuellement un lien symbolique par type :
$ sudo ln -s /etc/apache2/sites-available/example.com.conf /etc/apache2/sites-enabled/
Une fois créé, vérifiez les erreurs de syntaxe en utilisant :
$ sudo apachectl configtest
Il affichera ci-dessous la sortie s'il n'y a pas d'erreur :
Output
Syntax OK
Vous devez redémarrer le service apache2 pour que les modifications prennent effet avec la commande ci-dessous :
$ sudo systemctl restart apache2
Enfin, vous pouvez vérifier en ouvrant votre http://example.com sur votre navigateur Web et il devrait s'afficher comme suit :
Great! example.com set up completed!