La création d’un virtualhost sous apache vous permet de rediriger dans un espace web particulier tout utilisateur qui voudra accéder aux pages internet d’un site comme par exemple : www.monsite.xyz
Les virtualhosts deviennent intéressant dès lors que l’on héberge plusieurs sites différents sur le même serveur
Nous allons créer un fichier spécifique pour notre nouveau site /etc/apache2/sites-available/xenetis.org :
nano /etc/apache2/sites-available/monsite.xyz.conf
Puis vous y ajoutez les lignes suivantes ( en remplaçant biensûr xenetis.org par le nom de votre site) :
<VirtualHost www.xenetis.org:80> ServerAdmin postmaster@xenetis.org DocumentRoot /var/www/xenetis.org/ CustomLog /var/log/apache2/xenetis.org.log LogLevel warn </VirtualHost>
ServerAdmin indique le mail de l’administrateur du site
DocumentRoot indique le dossier où se trouvent les pages html et php du site ( la racine du site)
CustomLog permet d’indiquer un fichier particulier où stocker les logs du virtualhost (intéressant pour le débuggage et pour certains systèmes de statistiques comme awstats)
LogLevel indique le niveau de log plus ou moins volumineux selon la valeur ( debug, info, notice, warn, error, crit, alert, emerg)
Une fois que notre site est présent dans les sites disponibles (sites-available) nous allons l’ajouter dans les sites actifs (sites-enable) à l’aide d’un lien symbolique :
cd /etc/apache2/sites-enabled/ ln -s ../sites-available/monsite.xyz.conf
Une autre méthode plus simple pour activer le virtualHost :
a2ensite monsite.xyz.conf
Il ne reste plus qu’a ajouter le NameVirtualHost afin d’avoir un accès par défaut à l’IP de la machine.
Pour cela, éditez le fichier /etc/apache2/apache2.conf :
nano /etc/apache2/apache2.conf
Ajoutez cette ligne :
NameVirtualHost 111.222.333.444:80
Sauvegardez, quittez l’éditeur et relancer apache :
/etc/init.d/apache2 restart
Il ne vous reste plus qu’à créer le dossier d’hébergement, et créer un index.html :
mkdir /var/www/xenetis.org echo "www.xenetis.org site en construction" > /var/www/xenetis.org/index.html
Configuration des interfaces :
La spécification des interfaces sur lesquelles Apache2 écoutera les requêtes se fait dans ports.conf avec la directive Listen. Vous devez spécifier au moins le port. Apache écoutera alors sur toutes les interfaces. Pour restreindre l’utilisation à une ou plusieurs interfaces il suffit de les spécifier, suivies du port. Il faut une directive Listen par interface.
– Si le serveur est connecté avec une ip internet et que l’on souhaite écouter sur cette interface on ajoute la directive Listen Ip.Internet .
– Si le serveur est connecté avec une ip local et que l’on souhaite écouter sur cette interface on ajoute la directive Listen Ip.Local .
– Si l’on souhaite écouter sur un certain port on rajoute :Le_Port .
Il est aussi possible de ne spécifier que le port Listen Le_Port.
Éditez le fichier /etc/apache2/ports.conf. (remplacer X.X.X.X par vos ip )
#interface (local ou internet) connectée sur port standard Listen X.X.X.X:80
(il faut mettre le nom du fichier contenant la définition du/des vhost)
pour l’adresse dans /etc/hosts, si ton adresse locale (celle du pc) est la même que ton ip publique, il faut mettre cette adresse :
ton.ip.publique mon.domaine www.mon.domaine
si tu as une adresse locale sur ton pc (genre 192.168.x.x ou 172.16.x.x), c’est cette adresse qu’il faut mettre :
ton.ip.locale mon.domaine www.mon.domaine
il faut bien cependant que dans ton fichier de configuration (du vhost) tu aies bien une directive :
NameVirtualHost ip.du.pc
il faudra également penser à faire une redirection du port 80 de ton adresse publique vers ton adresse locale sur ton routeur.
il te reste juste à lancer cette commande :
/etc/init.d/apache2 restart
Commande supplémentaires :
- a2enconf (8) – activer ou désactiver un fichier de configuration apache2
- a2ensite (8) – activer ou désactiver un site apache2 / hôte virtuel
- a2disconf (8) – activer ou désactiver un fichier de configuration apache2
- a2dismod (8) – activer ou désactiver un module apache2
- a2dissite (8) – activer ou désactiver un site apache2 / hôte virtuel
Plus de commandes : https://www.systutorials.com/docs/linux/man/8-a2enmod/