Pour héberger un site Web avec Apache, il faudra, dans un premier , comprendre sa structuration dans un serveur WEB. Un site internet utilise des répertoires et des fichiers accessibles par un navigateur web. Par défaut, comme notifier dans la documentation de Ubuntu, ces éléments se trouvent dans le répertoire /var/www/html. Le fichier de configuration /etc/apache2/sites-available/000-default.conf contient cette information.
belkacem@apache:~$ sudo nano /etc/apache2/sites-available/000-default.conf
Lorsqu’une requête arrive sur le port 80, elle est traitée dans le répertoire par défaut « /var/www/html ». En parallèle, les erreurs sont consignées dans le fichier « /var/log/apache2/error.log », tandis que les informations relatives aux accès sont enregistrées dans « /var/log/apache2/access.log ». Ainsi, l’hébergement d’un site internet repose sur une organisation logique illustrée par ces répertoires..
Dans le répertoire /var/www/html/, se trouve une page HTML nommée « index.html ». Pour personnaliser cette page, nous éditons ce fichier et modifions son titre. Plus précisément, à la ligne 208, nous remplaçons le texte « Apache2 Default Page » par un titre de notre choix, reflétant ainsi le contenu ou l’objectif du site. Une fois les modifications effectuées, nous enregistrons le fichier pour appliquer ces changements.
En accédant à notre serveur web à l’aide d’un navigateur, nous constatons que le titre a bien été modifié. Cela confirme que nos modifications ont été prises en compte. Ainsi, héberger un site internet repose sur quelques étapes simples : configurer le serveur, organiser les fichiers dans le répertoire adéquat, et personnaliser les pages selon les besoins du site. Avec ces bases, il devient facile de gérer un hébergement web fonctionnel et adapté.
Hebergement plusieurs sites Web avec Apache en utilisant les ports
Par défaut, comme nous l’avons mentionné dans l’article précédent, Apache écoute sur le port 80. Cependant, vous pouvez configurer Apache pour écouter sur un autre port en créant un second « VirtualHost » dédié. Par exemple, nous allons configurer Apache pour écouter sur le port 81 et associer ce port au répertoire /var/www/html/port81/. Pour cela, nous basons notre travail sur le fichier de configuration par défaut, que nous adaptons pour répondre aux besoins spécifiques de l’hébergement multi-site.
belkacem@apache:~$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/port81.conf
belkacem@apache:~$ sudo vim /etc/apache2/sites-available/port81.conf
Nous configurons Apache pour écouter sur le port 81 en modifiant le contenu du fichier de configuration. Nous gérons ensuite les requêtes adressées à ce port à l’aide des fichiers situés dans le répertoire /var/www/html/port81. De plus, nous mettons en place des journaux spécifiques pour ces requêtes, ce qui nous permet d’assurer un suivi clair et détaillé de l’activité liée à ce port.
Listen 81
<VirtualHost *:81>
DocumentRoot /var/www/html/port81/
ErrorLog ${APACHE_LOG_DIR}/error_port81.log
CustomLog ${APACHE_LOG_DIR}/access_port81.log combined
</VirtualHost>
Création du répertoire pour l’hébergement du site web
Nous créons le répertoire requis, puis nous simplifions le processus en copiant et collant le fichier index.html dans le répertoire /var/www/html/port81/ que nous avons créé. Avec cette configuration, nous atteignons notre objectif d’héberger un site internet supplémentaire.
belkacem@apache:~$ sudo mkdir /var/www/html/port81/
belkacem@apache:~$ sudo cp /var/www/html/index.html /var/www/html/port81/
Nous modifierons le titre du fichier « index.html » contenu dans le répertoire /var/www/html/port81/
Actuellement, notre site est dans le répertoire /etc/apache2/sites-available/, ce qui le rend disponible mais pas encore activé. Pour l’activer, nous copions sa configuration dans le répertoire /etc/apache2/sites-enabled/. Ensuite, nous créons un lien symbolique pointant vers le fichier de configuration. Ainsi, nous configurons Apache pour activer ce site et le rendre prêt à l’utilisation. Grâce à cette méthode, nous simplifions la gestion des sites hébergés.
belkacem@apache:~$ sudo ln -s /etc/apache2/sites-available/port81.conf /etc/apache2/sites-enabled/port81.conf
Recharger la nouvelle configuration
Nous appliquons la nouvelle configuration d’Apache en rechargeant ses fichiers. Pour cela, nous rechargeons le service Apache. Cette action garantit que le serveur prend en compte les modifications et fonctionne correctement avec les nouveaux paramètres.
belkacem@apache:~$ sudo systemctl reload apache2
Pour accéder à ce nouveau site internet, nous précisons le port 81 dans l’URL. Nous entrons donc http://<adresse_ip>:81
dans la barre d’adresse du navigateur. Vérifions le résultat.
Hébergement plusieurs site Web en utilisant les noms de domaine
Dans le chapitre précédent, nous avons appris à créer plusieurs sites internet sur un même serveur. Cependant, bien que cette méthode soit adéquate pour un usage privé, elle ne convient pas à un usage public, comme celui d’un site vitrine. En effet, il est important de noter qu’un utilisateur lambda ne prendra pas le temps de saisir un numéro de port ou une adresse IP pour accéder à un site.
Simuler un nom de domaine dans une environnement de test
Ainsi, dans un environnement de production, nous procédons différemment. Nous achetons un nom de domaine auprès d’un registraire (ou registrar en anglais). Ce dernier est une entreprise accréditée par l’ICANN (Internet Corporation for Assigned Names and Numbers) pour fournir des noms de domaine publics. Par conséquent, cette démarche garantit une expérience utilisateur plus professionnelle et accessible.
Bon à savoir :
L’ICANN est une organisation à but non lucratif en charge de la gestion des noms de domaine et des adresses IP sur Internet.
Dans notre contexte, nous travaillons en mode « lab » dans un environnement privé. Par conséquent, nous simulons le rôle du registar. Pour cela, nous utilisons une machine Windows Client afin d’interroger notre serveur web.
Ensuite, nous modifions le fichier hosts, situé dans le dossier c:\windows\system32\drivers\etc\. Pour éditer ce fichier, nous ouvrons un éditeur de texte tel que « Notepad ». Nous veillons à exécuter cet éditeur en tant qu’administrateur avant d’ouvrir le fichier. De plus, nous sélectionnons l’option « Tous les fichiers » dans la liste déroulante « Type de fichier » pour afficher le fichier dans le champ « Nom de fichier ». Ainsi, nous pouvons apporter les modifications nécessaires de manière efficace.
Dans ce fichier, nous associons deux noms de domaine à l’adresse IP de notre serveur web. Ensuite, nous enregistrons les modifications pour que la configuration soit prise en compte. Ainsi, nous établissons le lien nécessaire entre les noms de domaine et le serveur.
Ensuite, nous vérifions la configuration en envoyant un ping sur les deux noms de domaine ajoutés dans le fichier hosts.
Dans les captures d’écran ci-dessus, nous voyons que les noms de domaine sont liés à l’adresse IP 10.0.0.3. Cela signifie que deux noms de domaine différents pointent vers la même adresse IP. Dans cet exemple, nous configurons les deux sites pour qu’ils utilisent le port 80. Ensuite, nous créons deux VirtualHost, chacun configuré pour écouter sur ce port. Pour mieux organiser les réglages, nous utilisons un fichier de configuration séparé pour chaque VirtualHost.
Configuration des VirtualHost
D’abord, nous créons un fichier de configuration dans le répertoire /etc/apache2/conf-available/. Pour rendre cela clair, nous nommons chaque fichier en utilisant le nom de domaine. Nous nous assurons aussi que le fichier a l’extension « .conf », car Apache en a besoin pour reconnaître la configuration. Cette approche simple nous aide à structurer nos fichiers de façon pratique et efficace.
belkacem@apache:~$ sudo vim /etc/apache2/conf-available/licorne.fr.conf
Dans ce fichier, nous écrivons seulement les informations nécessaires. Nous précisons d’abord le dossier où les fichiers traiteront les requêtes HTTP. Ensuite, nous ajoutons le nom de domaine qui recevra ces requêtes. Enfin, nous créons un alias pour le nom de domaine. Avec cette configuration de base, les requêtes HTTP fonctionneront correctement.
<VirtualHost *:80>
DocumentRoot /var/www/html/licorne
ServerName www.licorne.fr
ServerAlias licorne.fr
</VirtualHost>
Dans cette configuration, nous stockons les fichiers et dossiers liés au domaine www.licorne.fr dans /var/www/html/licorne. Ce dossier n’existe pas encore, donc nous devons le créer. Cette étape permet d’organiser les fichiers du domaine de manière claire et efficace.
belkacem@apache:~$ sudo mkdir /var/www/html/licorne/
Nous y copions le fichier « index.html » présent dans /var/www/html/.
belkacem@apache:~$ sudo cp /var/www/html/index.html /var/www/html/licorne/
Nous créerons ensuite notre lien symbolique du fichier de configuration dans le répertoire /etc/apache2/sites-enabled/.
belkacem@apache:~$ sudo ln -s /etc/apache2/sites-available/ licorne.fr.conf /etc/apache2/sites-enabled/licorne.fr.conf
Pour qu’Apache prenne en compte les modifications, nous rechargeons la configuration.
Ensuite, en répétant les mêmes étapes pour le second site, nous hébergeons deux sites sur la même adresse IP. Cette méthode permet de gérer facilement plusieurs sites sur un seul serveur.
<VirtualHost *:80>
DocumentRoot /var/www/html/panda
ServerName www.panda.fr
ServerAlias panda.fr
</VirtualHost>
belkacem@apache:~$ sudo mkdir /var/www/html/panda/
belkacem@apache:~$ sudo cp /var/www/html/port81/index.html /var/www/html/panda/
belkacem@apache:~$ sudo ln -s /etc/apache2/sites-available/ panda.fr.conf /etc/apache2/sites-enabled/panda.fr.conf