Comment utiliser un nom de domaine pour le développement local
Supposons que vous souhaitiez utiliser un domaine pour le développement sur votre serveur local. Vous avez une machine virtuelle (peut-être Vagrant) ou un serveur sur lequel vous allez programmer. Si vous souhaitez atteindre ce serveur en utilisant le domaine monprojet.test, comment feriez-vous cela?
Eh bien, nous ne pouvons pas créer ou acheter ce domaine (pour autant que je sache, le TLD .test n'existe pas encore ...). Si nous le pouvions, nous devions dépenser de l'argent (ce qui est nul), puis gérer le DNS du domaine, en pointant le domaine vers la bonne adresse IP.
Si nous tapons http://monprojet.test dans notre navigateur, le navigateur ne saura pas quoi en faire! Aucun mécanisme n'est en place pour indiquer au navigateur à quelle adresse IP le domaine doit se résoudre.
Nous avons besoin d'un moyen de dire au navigateur que le domaine monprojet.test pointe vers une adresse IP. Heureusement, tous les ordinateurs (dans tous les systèmes d'exploitation), ont un fichier d'hôtes (hosts). Ce fichier nous permet de mapper les domaines aux adresses IP.
Sur Windows, le fichier se trouve dans le dossier suivant : C:\Windows\System32\drivers\etc\hosts
Sur macOS ou Linux, le fichier est situé dans le dossier suivant : /etc/hosts
Il s'agit d'un fichier texte et donc peut-être modifier par votre éditeur préféré. Par contre, on a besoin d'avoir un accès administrateur ou root pour pouvoir modifier le fichier. Sur Windows vous pouvez exécuter un logiciel comme notepad en tant qu'administrateur avant d'ouvrir le fichier.
Sur macOS ou Linux, vous pouvez exécuter la commande suivante :
sudo nano /etc/hosts
Le contenu du fichier ressemble généralement à ceci :
Notez que bien que nous ayons un serveur de développement distinct, nous modifions le fichier hosts sur l'ordinateur sur lequel nous voulons utiliser le domaine project.dev. Nous n'éditons pas le fichier d'hôtes du serveur (ou de la machine virtuelle).
Sur mon Macintosh, cela ressemble à ceci:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Comment utilisons-nous ce fichier pour pointer un domaine vers notre serveur? Heureusement, c'est facile! Si notre serveur de développement se trouve sur l'adresse IP 192.168.22.10 et que nous voulons utiliser le nom d'hôte monprojet.test, nous pouvons simplement ajouter cette entrée au fichier hosts:
192.168.22.10 monprojet.test
Si nous avons plusieurs projets sur ce même serveur, chacun avec son propre domaine, nous pouvons ajouter chaque domaine à cette même entrée:
192.168.22.10 monprojet.test www.monprojet.test projet2.test www.projet2.test
Ou encore sur plusieurs lignes :
192.168.22.10 monprojet.test
192.168.22.10 www.monprojet.test
192.168.22.10 projet2.test
192.168.22.10 www.projet2.test
Pour pointer sur l'ordinateur local, vous pouvez utiliser l'adresse IP 127.0.0.1
ou encore si vous avez IPv6 ::1
.
Après avoir enregistré votre fichier (et parfois après avoir vidé le cache DNS de votre ordinateur), vous constaterez que ces domaines commencent à fonctionner - vous pouvez les saisir dans votre navigateur. Les domaines seront résolus à l'adresse IP que vous avez définie!