Creation d'un vhost
Qu'est-ce qu'un vhosts ?
Un vhost, abréviation de "virtual host", est utilisé pour permettre à un serveur web de gérer plusieurs sites web distincts sur une seule machine physique. Voici quelques-unes de ses fonctions principales :Isolation des Sites Web : Un vhost permet d'isoler différents sites web les uns des autres, ce qui signifie que chaque site peut avoir sa propre configuration, ses propres fichiers et ses propres paramètres sans interférer avec les autres sites hébergés sur le même serveur.
Gestion de Noms de Domaine Multiples : En utilisant des vhosts, un seul serveur peut répondre à des requêtes pour plusieurs noms de domaine différents. Cela signifie que des sites web distincts avec des noms de domaine uniques peuvent être hébergés sur la même machine.
Utilisation de Certificats SSL/TLS : Les vhosts permettent également l'utilisation de certificats SSL/TLS distincts pour chaque site web, ce qui est essentiel pour assurer des connexions sécurisées via HTTPS.
Optimisation des Ressources : En regroupant plusieurs sites web sur une seule machine, les vhosts permettent une utilisation plus efficace des ressources matérielles et logicielles, ce qui peut être particulièrement avantageux pour les serveurs avec un grand nombre de sites web à héberger.
En résumé, les vhosts sont un outil essentiel pour les administrateurs de serveurs web, car ils offrent une solution efficace pour héberger plusieurs sites web sur une même infrastructure tout en assurant l'isolation, la sécurité et la facilité de gestion.
Qu'est-ce qu'un fichier hosts ?
Le fichier hosts permet de faire correspondre facilement des adresses IP à des noms de domaine.Cela évite d'avoir à se souvenir de l'adresse IP du serveur à chaque fois.nb : pour ce tuto notre site sera opendata.tag
Comment configurer le fichier hosts de Linux ?
1- ouvrez un terminal.
Pour ouvrir le fichier hosts afin de le modifier, tapez la commande suivante :
sudo nano /etc/hosts
il est presenté comme suit :
2. Ajoutez une nouvelle entrée à hosts
Chaque ligne du fichier hosts est un mappage pour une adresse IP unique et se présente sous la forme suivante :
Adresse IP Nom de domaine
Par exemple , vous pouvez mapper l'adresse 127.0.0.1 avec le domaine opendata.tag. Cette entrée ressemblerait à ceci (et serait ajoutée au bas du fichier) :
127.0.0.1 opendata.tag
pourque terminer avec la creation de notre serveur virtuel nous allons terminer avec un dernier élément
creation d'un repertoire pour stocker les fichiers du site
nous allons proceder de la maniere suivante:
ouvrir un terminal
cd /
pour se positionner à la racine de l'ordinateur
- effectuer la commande
cd /var/www
-
sudo mkdir www
- puis on créé un repertoire portant le nom de notre site local
sudo mkdir opendata
- puis on y accede grace à la commande
cd opendata
- puis on lui donne tout les privileges
sudo chmod 777 .
creation du fichier .conf
- on se positionne à la racine de notre machine
cd /
- on accede au repertoire etc
cd /etc
- puis au repertoire apache2
cd apache2
- à l'interieure du repertoire apache2 on va acceder au repertoire "sites-available" si il existe dans le cas contraire on va creer un
sudo mkdir sites-available
- on accede a ce repertoire
cd sites-available
- ensuite on modifie le fichier .conf si il existe
sudo nano monsite.conf
- dans le cas contraire on va creer un
touch monsite.conf
on applique la configuration suivante :
<VirtualHost *:80>
ServerAdmin usermail
ServerName opendata.tag
ServerAlias www.opendata.tag
DocumentRoot /var/www/opendata
<Directory /var/www/opendata>
Options Indexes FollowSymLinks
AllowOverride All
Order Deny,Allow
Allow from all
DirectoryIndex disabled
DirectoryIndex index.php
</Directory>
# preciser la version de PHP
#<FilesMatch ".+\.php$">
# SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost"
# </FilesMatch>
ErrorLog /var/www/opendata/logs/error.log
CustomLog /var/www/opendata/logs/access.log combined
</VirtualHost>
puis on effectue la commande Ctrl+o puor sauvegarder et Ctrl+x pour fermer
Activation du fichier de configuration
pour cela il suffit de faire la commande
a2ensite opendata.conf
Redémarrer le service Apache avec la commande
sudo service apache2 restart
se rendre à l'addresse de votre site pour tester exemple http://opendata.tag
bon à savoir :
à defaut de creer un repertoire pour importer les fichiers du site dans le dossier var on peut egalement faire un lien symbolique vers le dossier de notre site
à traver la commmande
dans le cas où mon dossier est dans /home/user/opendata
ln -s /home/user/opendata /var/www/
explications de des elements du fichier de configuration
<VirtualHost *:80> : cette ligne indique le début de la définition de l'hôte virtuel. Le * signifie que l'hôte virtuel écoute sur toutes les adresses IP du serveur, et le 80 signifie qu'il utilise le port 80, qui est le port par défaut pour le protocole HTTP.
• ServerAdmin usermail : cette ligne spécifie l'adresse e-mail de l'administrateur du serveur, qui sera affichée en cas d'erreur.
• ServerName opendata.tag : cette ligne spécifie le nom de domaine principal de l'hôte virtuel, qui doit correspondre à celui enregistré dans le système DNS.
• ServerAlias www.opendata.tag : cette ligne spécifie un ou plusieurs noms de domaine alternatifs pour l'hôte virtuel, qui seront traités de la même manière que le nom principal.
• DocumentRoot /var/www/opendata : cette ligne spécifie le répertoire racine de l'hôte virtuel, qui contient les fichiers du site web à servir.
• <Directory /var/www/opendata> : cette ligne indique le début d'une section qui contient des directives spécifiques au répertoire racine de l'hôte virtuel.
• Options Indexes FollowSymLinks : cette ligne spécifie les options du répertoire, qui contrôlent son comportement. Ici, Indexes signifie que si aucune page d'index n'est trouvée, le serveur affiche la liste des fichiers du répertoire, et FollowSymLinks signifie que le serveur suit les liens symboliques dans le répertoire.
• AllowOverride All : cette ligne spécifie que le serveur autorise les fichiers .htaccess dans le répertoire, qui peuvent contenir des directives supplémentaires ou différentes de celles de la configuration globale.
• Order Deny,Allow : cette ligne spécifie l'ordre dans lequel le serveur évalue les directives Deny et Allow, qui contrôlent l'accès au répertoire. Ici, Deny,Allow signifie que le serveur refuse d'abord l'accès à tous, puis autorise l'accès à ceux qui sont spécifiés par la directive Allow.
• Allow from all : cette ligne spécifie que le serveur autorise l'accès au répertoire à tous les visiteurs, sans restriction.
• DirectoryIndex disabled : cette ligne spécifie que le serveur ne cherche pas de page d'index dans le répertoire, comme index.html ou index.php.
• DirectoryIndex index.php : cette ligne spécifie que le serveur utilise le fichier index.php comme page d'index dans le répertoire, si celui-ci existe.
• </Directory> : cette ligne indique la fin de la section qui contient les directives spécifiques au répertoire racine de l'hôte virtuel.
• # preciser la version de PHP : cette ligne est un commentaire, qui n'est pas interprété par le serveur. Il sert à indiquer au développeur qu'il faut préciser la version de PHP utilisée par l'hôte virtuel.
• #<FilesMatch ".+\.php$"> : cette ligne est aussi un commentaire, qui contient le début d'une section qui contient des directives spécifiques aux fichiers PHP de l'hôte virtuel. Le # signifie que la ligne est désactivée, et le .+\.php$ signifie que la section s'applique à tous les fichiers dont le nom se termine par .php.
• # SetHandler "proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost" : cette ligne est aussi un commentaire, qui contient une directive qui spécifie le gestionnaire à utiliser pour les fichiers PHP de l'hôte virtuel. Le # signifie que la ligne est désactivée, et le proxy:unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost signifie que le serveur utilise le protocole FastCGI pour communiquer avec le processus PHP-FPM, qui exécute les fichiers PHP avec la version 8.1 de PHP.
• #</FilesMatch> : cette ligne est aussi un commentaire, qui contient la fin de la section qui contient les directives spécifiques aux fichiers PHP de l'hôte virtuel. Le # signifie que la ligne est désactivée.
• ErrorLog /home/computeruser/Documents/error_log : cette ligne spécifie le fichier dans lequel le serveur enregistre les messages d'erreur relatifs à l'hôte virtuel.
• CustomLog /var/www/my-nutribe/logs/access.log combined : cette ligne spécifie le fichier dans lequel le serveur enregistre les informations sur les requêtes reçues par l'hôte virtuel, en utilisant le format combined, qui contient des données comme l'adresse IP du visiteur, la date et l'heure de la requête, la méthode HTTP, l'URL demandée, le code de statut, la taille de la réponse, le référent, et l'agent utilisateur.
• </VirtualHost> : cette ligne indique la fin de la définition de l'hôte virtuel.
creation des fichiers error.log et succes.log
le fichier error.log et le fichier succes.log sont des exemples de fichiers log, qui sont des fichiers qui enregistrent l'historique des événements survenus sur un serveur, un ordinateur ou une application. Ces fichiers sont utiles pour comprendre les usages, résoudre les erreurs, établir des statistiques ou prévenir les fraudesLe fichier error.log contient les informations sur les erreurs qui se sont produites sur le système, comme les exceptions, les bugs ou les dysfonctionnements. Il permet aux développeurs de déboguer le code et de corriger les problèmes.
Le fichier succes.log contient les informations sur les opérations qui se sont déroulées avec succès sur le système, comme les connexions, les transactions ou les validations. Il permet aux utilisateurs de vérifier le bon fonctionnement du système et de tracer les activités
pour les creer il suffit d'ouvrir un terminal
terminal
-acceder aux dossier du site suivant son emplacement soir dans /var/www/opendata et creer ensuite le dossier logs
-dans le cas où l'on a importer les dossiers du site grace à un lien symbolique on ira dans les dossier d'origine et à la racine du dossier de notre site web on va creer un dossier logs
enfin on va creer les fichiers error.log et succes.log grace à la commande
touch error.log succes.log
Loading ...