Dans cet article nous allons voir comment installer un virtualhost sur un serveur Apache. Je vous propose dans un premier temps de vous expliquer à quoi cela peut bien servir car à première vue il s’agit d’un terme plutôt barbare. C’est peut-être même la première fois que vous entendez parler de cette chose étrange.

Vous pouvez découvrir cette vidéo qui vous présentera la mise en place complète d’un virtualhost sur votre serveur web local :

Je m’abonne à la chaîne YouTube

En réalité, un virtualhost ça permet simplement et rapidement de personnaliser une URL de manière virtuelle dans des projets locaux.

URL avant mise en place de virtualhost

URL avant mise en place

URL après mise en place de virtualhost

URL après mise en place

Dans un article précédent, nous avons installé le logiciel Xampp qui permet de créer des sites internet en local par le biais d’un serveur Web. Mais si vous avez suivi ce dernier tutoriel vous avez pu constater que pour se connecter sur celui-ci il fallait rentrer une URL un peu particulière, il s’agit de 127.0.0.1.

Virtualhost - Installer et mettre en place

Virtualhost – Installer et mettre en place

Le principal problème de cette URL et qu’elle n’est pas personnalisée, en effet si nous installons un site, imaginons avec WordPress, le problème que nous rencontrons est que notre base de données enregistrera cette URL directement pour le site et pour toutes nos extensions que nous installerons par la suite.

Lorsque nous ferons une migration de notre site vers notre serveur de production toutes les URL seront fausses. Même si une manipulation en base de données est possible pour rattraper cela. L’idée est donc de mettre en place sur notre serveur de développement des URL personnalisées qui correspondent à celles que nous aurons sur nos serveurs de production. Ainsi lorsque nous ferons la migration, il n’y aura pas de problème avec les URL.

Mise en place des virtualhosts

Pour mettre en place un virtualhost il y a deux choses à faire, la première est de modifier le fichier host dans Windows. Pour cela il faut se rendre dans le dossier par le biais du chemin suivant : C:\Windows\System32\drivers\etc\hosts

Droits sur le fichier host

Droits sur le fichier host

Vous devez donner le contrôle total sur le fichier aux utilisateurs pour pouvoir le modifier, en effet celui-ci est protégé.

Pour cela, cliquez sur le fichier avec la partie droite de votre souris puis accéder aux propriétés. Dans l’onglet sécurité, sélectionnez « utilisateurs » puis cliquez sur « Modifier ». Une nouvelle fenêtre s’ouvre sélectionner à nouveau utilisateurs puis cochez la case « contrôle total » un peu plus bas, vous pouvez désormais modifier votre fichier host dans un éditeur de texte. Vous pouvez ajouter la ligne suivante à la fin du fichier en modifiant bien évidemment le nom du site pour qu’il s’adapte à votre situation.

127.0.0.1 sitetest.com www.sitetest.com

Modifier le fichier Host

Modifier le fichier Host

Maintenant, vous pouvez enregistrer le fichier host et lui redonner les mêmes droits qu’auparavant. Pour cela, refaite la même manipulation et donner uniquement les droits de lecture et exécution ainsi que lecture seule aux utilisateurs.

Ajouter un virtualhost

Maintenant, il nous reste à ajouter simplement un virtualhost dans le fichier qui correspond. Pour cela, rendez-vous sur votre control panel si vous utilisez Xampp où dans le dossier correspondant si vous utilisez un autre serveur Web. Il s’agit du dossier Apache. Depuis celui-ci, il suffit de cliquer sur config dans la ligne Apache puis browse Apache.

Un nouveau dossier s’ouvre et on peut y trouver le fichier en allant dans un premier temps dans le dossier conf puis dans le dossier extra. Là vous devriez trouver un fichier qui se nomme httpd-vhosts.conf. Vous pouvez désormais l’ouvrir pour l’éditer.

Installer Virtualhost

Installer Virtualhost

Vous constatez qu’il possède un exemple de configuration. Ci-dessous, voici ce qu’il faut rentrer pour que votre virtualhost fonctionne :

<VirtualHost *:80>
ServerAdmin webmaster@sitetest.local
DocumentRoot "C:/xampp/htdocs/test/"
ServerName sitetest.local
ServerAlias www.sitetest.local
ErrorLog "logs/sitetest.local-error.log"
CustomLog "logs/sitetest.local-access.log" common
</VirtualHost>
<VirtualHost *>
DocumentRoot « C:\xampp\htdocs »
ServerName localhost
</VirtualHost>

comme pour le fichier host vous devez adapter le nom du site au vôtre. Désormais, tout est fonctionnel, vous pouvez relancer votre serveur Apache. En entrant l’adresse URL dans notre navigateur, nous accédons désormais à notre serveur web local. Il faut savoir que si vous souhaitez accéder au serveur de production, il faudra enlever le virtualhost, sinon vous continuerez à accéder à votre serveur local.

Une petite information également, désormais il est fortement conseillé d’utiliser des sites internet qui utilisent le cryptage SSL. Vous savez c’est ce que l’on voit en début d’adresse URL avec HTTPS. Si vous tentez d’accéder à votre site avec HTTPS un message d’erreur apparaîtra.

HTTPS et virtualhost

HTTPS

Pour contourner ce problème dans Mozilla Firefox, il suffit de cliquer sur « avancé » puis ajouter une exception en bas de la page. Vérifier que « conserver cette exception de façon permanente » soit bien coché puis confirmez. Vous avez désormais accès au site en HTTPS et vous pouvez commencer la configuration de votre site internet. 😉

HTTPS ok avec virtualhost

HTTPS ok