Voici le premier vrai article de ce blog (moment historique s’il en est!). Nous allons donc nous intéresser à l’installation de Vagrant avec la virtual box Homestead.
Vagrant, c’est quoi?
En gros, Vagrant est un outil de développement qui va vous permettre d’émuler une installation de serveur Linux pour pouvoir travailler au plus proche de votre environnement de production, qui sera justement du Linux (a priori, puisque vous faites du php). Ceci peut se révéler intéressant si vous êtes un habitué de WAMP (MAMP, …) et que vous rencontrez parfois des soucis au moment de la mise en production de vos applications. Par exemple, php ne se comportera pas exactement de la même manière dans un environnement Windows (avec WAMP) que dans un environnement Linux. Ce qui peut, dans certains cas, poser des problèmes . Avec Vagrant, vous allez pouvoir créer un environnement de développement au plus proche de votre environnement de production et donc diminuer fortement le risque de rencontrer des bizarreries en tous genres au moment du passage du serveur de développement vers le serveur de production. Si vous travaillez en équipe, ça va aussi vous permettre d’utiliser la même configuration de machine virtuelle pour tout le monde!
Et Homestead dans tout ça?
Homestead, quand à lui, est une virtual box préparée par Taylor Otwell (la personne à l’origine de Laravel). La virtual box, c’est un environnement virtuel Vagrant avec une série de paramètres spécifiques. Il va être très intéressant pour nous de l’installer pour trois raisons principales: Premièrement, il a été concu par le créateur de Laravel, avec comme optique d’optimiser la configuration pour le développement avec ce framework en particulier (soit dit en passant, vous pouvez bien-sûr aussi utiliser Homestead sans Laravel). Deuxièmement, lorsque vous rencontrerez un problème en cours de développement d’une application avec Laravel. Si vous postez sur un forum (par exemple Stack Overflow) pour obtenir de l’aide, il sera facile pour les gens qui vous aiderons de connaitre la configuration de votre serveur, puisqu’elle est la même pour tous les utilisateurs de Homestead. Ce qui permettra d’avoir une expérience unifiée pour tous les développeurs Laravel/Homestead. Enfin, Taylor Otwell nous propose Forge, un service payant permettant de mettre notre application en ligne sur une configuration serveur identique à la configuration de Homestead! Il suffit de choisir un fournisseur d’hébergement cloud dans la liste de ceux supportés par Forge et de faire quelques petits réglages pour avoir notre serveur sur pied. Super facile! Quelques services additionnels, comme la planification de tâche, sont aussi proposées par Forge.
Installation de Vagrant
Maintenant que vous savez dans les grandes lignes pourquoi il est utile de travailler avec Vagrant, voyons comment installer celui-ci. Personnellement, je suis un utilisateur de Windows. Je n’ai donc pratiqué l’installation de Vagrant que sous cet environnement en particulier. La démarche est similaire avec les autre OS.
Installer les logiciels
- Pour commencer, il vous faudra installer VirtualBox. Je vous laisse sélectionner, sous la section ‘Downloads’, les fichiers d’installation qui correspondent à votre système d’exploitation.
- Il vous faudra évidemment aussi installer Vagrant.

Vérifier que Vagrant est fonctionnel
Pour vérifier que l’installation de Vagrant s’est bien passée, vous pouvez ouvrir une fenêtre de shell et lancer la commande suivante:
1 |
vagrant -v |
Le numéro de votre version de Vagrant devrait alors s’afficher.

Installation de Homestead
Vous trouverez la documentation pour faire cette installation sur le site officiel de Laravel. Je n’ai pas trouvé la procédure d’installation de Homestead dans la documentation française (mais j’ai peut-être mal regardé). Voici, en résumé, la marche à suivre:
- Récupérer la box laravel/homestead
1 |
vagrant box add laravel/homestead |
- Cloner le dépôt git de Homestead
Vous pouvez maintenant cloner le dépôt distant de Homestead dans un dossier local. Appelez ce dossier local comme vous le souhaitez (ex: c:/Homestead). Vous pourrez ensuite héberger tous vos projets de développement Laravel sous ce dossier parent.
1 |
git clone https://github.com/laravel/homestead.git Homestead |
Cette commande est simple. Elle demande le clonage du dépôt git de Homestead. Vous allez donc récupérer une copie du contenu de celui-ci sur votre machine. Pour voir ce qu’il nous reste à paramétrer, ouvrez le fichier de configuration de Homestead.yaml (qui se trouve dans le dossier dans lequel vous avez cloné le tout, dans mon exemple “c:/Homestead”). Vous devriez avoir ceci :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: /Users/me/.ssh/id_rsa.pub keys: - /Users/me/.ssh/id_rsa folders: - map: /Users/me/Code to: /home/vagrant/Code sites: - map: homestead.app to: /home/vagrant/Code/Laravel/public variables: - key: APP_ENV value: local |
Ce fichier inclut une série de valeurs par défaut. Faisons rapidement le tour. authorize : le chemin vers votre clé publique ssh (l’explication arrive plus bas) keys : le chemin vers votre clé privée ssh (explication plus bas aussi) folders: - map : Correspond au chemin de votre dossier développement sur votre machine local - to : Son chemin d’accès sur votre machine virtuelle Ces dossiers sont “synchronisés”. Ce qui signifie que tout changement dans un fichier du dossier map se répercutera dans le dossier to, et inversément. sites: - map : Le nom que vous choisirez pour l’accès à votre application via le navigateur - to : Le chemin qui doit être appelé lorsque l’on accède à map variables : C’est ici que vous pouvez ajouter des variables d’environnement
Configurer la clé SSH
Si vous n’avez pas de clé publique SSH, vous pouvez facilement la générer avec la commande suivante sous Linux et MacOs:
1 |
ssh-keygen -t rsa -C "votre@email.com" |
Sous Windows, c’est un petit peu plus compliqué. Voici la marche à suivre: – Télécharger PuTTY SSH client et PuTTYgen depuis l’adresse http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html - Générer une clé privée avec PuTTY Pour ce faire, lancer PuTTYgen et cliquer sur “generate”. Il vous sera demandé de bouger votre souris de manière aléatoire pour générer une clé aléatoire (ne me demandez pas comment ça fonctionne ). Quand c’est fait, cliquez sur “load” et trouvez le fichier “insecure_private_key”. Il sera normalement dans votre dossier ”.vagrant.d” (sous Windows 7, c’est dans le dossier C:\Users\[votre_nom_d_utilisateur]\.vagrant.d). Vous pouvez maintenant sauver vos clé publique et privée. Dans mon cas, j’ai créé le dossier ‘ssh’ dans c:/Homestead. J’ai ensuite enregistré les fichiers clés sous c:/Homestead/ssh/id_rsa.pub pour la publique et c:/Homestead/ssh/id_rsa.ppk pour la privée. Voici le fichier Homestead.yaml modifié pour correspondre à nos emplacements de dossiers et fichiers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: c:/Homestead/ssh/id_rsa.pub keys: - c:/Homestead/ssh/id_rsa.ppk folders: - map: c:/Homestead/ to: /home/vagrant/Code sites: - map: monsite.app to: /home/vagrant/Code/monsite/public variables: - key: APP_ENV value: local |
- Modifier le fichiers hosts
Ouvrez votre fichier hosts
- Windows : C:\Windows\System32\drivers\etc\hosts
- Autres OS : /etc/hosts
Et ajoutez 127.0.0.1 monsite.app (conformément à l’exemple ci-dessus) en bas du fichier.
Lancer la machine virtuelle
Ca y est, on touche enfin au but! Pour lancer votre machine virtuelle, placez vous dans votre dossier Homestead et lancer la commande
1 |
vagrant up |
Le suspense est intense. Je croise les doigts pour vous! Si une erreur est survenue, repasser rapidement le tuto en revue et vérifiez que vous avez bien tout suivi. Si tout s’est bien passé, vous allez pouvoir vous connecter en ssh sur votre machine virtuelle avec la commande suivante:
1 |
vagrant ssh |
Si vous avez la même arborescence que la mienne, vous allez pouvoir accéder à votre dossier d’exemple et tapant
1 |
cd Code/monsite/public |
Créez ensuite un fichier pour tester tout ça dans le navigateur:
1 |
vi index.php |
Puis ajouter
1 |
echo 'Hello World!' |
et sauvez (esc, w, q, Entrée). Visitez ensuite http://monsite.app:8000/ Voilà, votre belle page php. L’instant est émouvant.
Conclusion
Vous avez maintenant une installation fonctionnelle de Homestead avec Vagrant. Vous trouvez peut-être que ça fait beaucoup de boulot par rapport à une bonne vieille installation de WAMP. Mais n’oubliez pas que tout ce qu’on a fait ici va nous permettre d’avoir des environnements homogènes et ça vaut vraiment la peine! Et ce, notamment avec Forge. Car, si comme pour moi, l’administration de serveur n’est pas votre rayon, vous allez pouvoir très facilement obtenir un environnement de production identique à l’environnement de développement que vous venez de mettre en place. Pas mal, non? Nous verrons prochainement comment tirer parti de tout ça avec Forge. Nous verrons aussi d’autres choses passionnantes et moins laborieuses, c’est promis
Merci pour le tuto.