Laravel, un framework PHP qui utilise le patron de conception MVC, peut être installé directement sur votre poste de travail et tourner dans un environnement de développement comme AMPPS ou EasyPHP. Cependant, pour faciliter votre développement, il est conseillé d’utiliser Homestead. Il s’agit d’un environnement pré-configuré qui sera déployé sur une machine virtuelle.
Note : si vous travaillez sous Mac, lisez plutôt cette fiche : Installation de Homestead sous Mac pour développer en Laravel.
Cet article vous indiquera la procédure détaillée à suivre pour installer Homestead sur un poste de travail Windows.
Votre code tournera sur une machine virtuelle Linux Ubuntu installée sur votre ordinateur.
Vos fichiers de code seront enregistrés directement sur votre poste de travail dans un dossier qui sera partagé sur votre machine virtuelle.
Votre éditeur sera installé sur votre poste de travail.
Les instructions et impressions d'écran correspondent aux versions suivantes, qui étaient les plus récentes au moment lors de la dernière mise à jour majeure de cet article (janvier 2019) :
Note : si vous travaillez avec des versions différentes (et ce sera certainement le cas), vérifiez bien les compatibilités entre ces produits. Par exemple, au moment d'écrire ces notes, Vagrant était compatible avec VirtualBox 6.0 et moins.
Vous avez d’abord besoin d’une machine virtuelle.
Téléchargez et installez VirtualBox sur votre ordinateur (gratuit) : https://www.virtualbox.org/wiki/Downloads.
Vous n’avez pas besoin de démarrer votre logiciel de virtualisation à ce stade. Ne créez pas non plus de machine virtuelle pour l’instant. Homestead le fera pour vous un peu plus loin.
Pour que votre machine virtuelle puisse fonctionner, vous devez vous assurez que votre ordinateur permette la virtualisation. C'est généralement le cas mais voici tout de même comment vous en assurer.
Sur un Dell, après avoir appuyé sur F12 :
Sur un Lenovo, après avoir appuyé sur Entrée :
puis sur F1 :
Sur ce DELL, l’option
était activée par défaut.Par contre, ce n'est pas le cas sur tous les ordinateurs, comme par exemple sur ce Lenovo.
Vagrant est un outil qui permet de monter un environnement de développement reproductible, de façon automatisée et dans un environnement virtualisé. L’environnement sera monté à partir de fichiers virtualisés, de scripts ainsi que de fichiers de configuration regroupés dans ce qu’on appelle une boîte Vagrant. Vous utiliserez donc Vagrant pour monter votre environnement de développement sur votre machine virtuelle.
Téléchargez et installez Vagrant sur votre ordinateur (Vagrant est gratuit et, si vous utilisez VirtualBox, vous n’aurez aucune extension à acheter) : http://www.vagrantup.com/downloads.html.
Vérifiez si Vagrant a bien été installé sur votre ordinateur. Pour ce faire, ouvrez une fenêtre de commande sur votre ordinateur et tapez :
vagrant -v
Le système devrait répondre en vous donnant la version installée.
Homestead est une boîte Vagrant, c’est-à-dire un regroupement de fichiers virtualisés, de scripts ainsi que de fichiers de configuration qui permettront à Vagrant de monter l’environnement de développement désiré.
Vous êtes maintenant prêt à ajouter la boîte Homestead dans Vagrant.
Pour télécharger Homestead, ouvrez une fenêtre de commande et lancez la commande :
vagrant box add laravel/homestead --force
Notez que le --force assure que la boîte sera téléchargée de nouveau dans le cas où elle existait déjà.
Attention : cette étape peut être longue si vous n'avez pas accès à une connexion Internet rapide.
Git est sans contredit un outil indispensable pour gérer les versions de vos programmes. Vous n'auriez normalement pas besoin d'installer Git puisque la boite Vagrant se chargera de l'installer pour vous dans votre machine virtuelle. Cependant, si vous l'installez également sur votre ordinateur Windows, vous aurez accès à l'outil Git Bash, une fenêtre de commande mieux adaptée aux besoins actuels que celle de Windows. Vous pourrez notamment y utiliser des commandes du style Linux, telles que retrouvées un peu partout dans le monde Laravel sur les tutoriels et les forums de discussions.
Git Bash sera utilisé pour le reste des manipulations de ce tutoriel. Pour l'installer :
Lancez l’application Git Bash.
Vous avez téléchargé la boîte Homestead un peu plus tôt. Il faut maintenant l’installer, c’est-à-dire faire le nécessaire pour que l’environnement de développement soit créé dans une machine virtuelle.
Commencez par faire un clone des scripts et des fichiers de configuration de Homestead disponibles sur Git à l’aide de la commande :
git clone https://github.com/laravel/homestead.git ~/Homestead
Tel qu’indiqué dans le dernier paramètre de la commande git clone, ceci a créé un nouveau dossier nommé Homestead. Ce dossier est placé directement dans votre dossier personnel (C:\Users\monnom\Homestead).
Dans Git Bash, déplacez-vous dans le dossier Homestead :
cd ~/Homestead
git checkout release
Pour lancer le script init.sh présent dans le dossier Homestead, entrez la commande :
bash init.sh
Ce script créera le fichier Homestead.yaml dans un dossier Homestead placé dans votre dossier personnel (C:\Users\monnom\Homestead\Homestead.yaml).
Note : si vous obtenez le message « 'bash' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes. », c'est que vous êtes dans une fenêtre DOS et non dans une fenêtre Git Bash.
Vous aurez besoin d’une clé SSH (Secure SHell) afin de permettre à votre ordinateur d’accéder à votre machine virtuelle. La clé SSH vous évitera d'avoir à vous authentifier sur votre machine virtuelle grâce à un échange de clés publiques et privées.
Commencez par revenir à votre dossier personnel :
cd ~
Pour générer la clé, entrez la commande :
ssh-keygen -t rsa -C 'moncourriel@mondomaine.com'
Acceptez l’emplacement par défaut (Users/monnom/.ssh/id_rsa).
Puisque vous travaillez dans un environnement de développement local, vous pouvez laisser la phrase de sécurité (passphrase) à blanc. La phrase de sécurité est en fait un mot de passe.
Attention : si vous prévoyez utiliser cette même clé SSH pour gérer les versions de vos fichiers sur un serveur Git distant, il est conseillé d'entrer une phrase de sécurité. Cette phrase vous sera demandée lorsque vous voudrez envoyer ou récupérer des fichiers sur le serveur Git mais pas quand vous ouvrirez une console Vagrant SSH.
À l’aide de l’éditeur de votre choix (personnellement, j'utlilise Geany pour ce genre de travail), ouvrez le fichier Homestead.yaml que vous retrouverez dans le dossier Homestead.
Assurez-vous que les configurations sont les suivantes :
Dans la section folders, la ligne map donne le chemin où vos fichiers seront stockés sur votre ordinateur. La ligne to, quant à elle, donne le dossier de votre machine virtuelle qui sera « mappé » sur ce dossier.
Modifiez le nom du dossier sur votre ordinateur (par défaut, ~/code). Suggestion : utilisez un dossier placé sous Documents (ex : ~/Documents/CodeLaravel).
Ex :
folders:
- map: ~/Documents/CodeLaravel
to: /home/vagrant/code
Prenez note que sur votre machine virtuelle, votre dossier personnel (~) correspondra au dossier /home/vagrant.
Attention : dans le fichier Homestead.yaml, vous devez utiliser des espaces et non des caractères de tabulation. De plus, pour éviter que des caractères invisibles indésirables ne soient insérés, il est conseillé de ne pas faire de copier-coller à partir du Web pour y ajouter des lignes.
Prenez note du nom de domaine local qui sera utilisé pour accéder à votre site Web (par défaut : homestead.test) et du nom du dossier qui lui est associé (par défaut : /home/vagrant/code/public).
sites:
- map: homestead.test
to: /home/vagrant/code/public
Remarquez que Homestead utilise maintenant l'extension .test et non plus .app comme c'était le cas avant 2018.
C'est parce que depuis décembre 2017, Google Chrome exige que les noms de domaine qui se terminent par .app, .dev et .foo utilisent une clé SSL. Si vous tentez d'ouvrir un site qui a un tel nom de domaine sans passer par https, vous obtiendrez le message « Votre connexion n'est pas privée. NET::ERR_CERT_AUTHORITY_INVALID ».
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
backup: true
Créez sur votre ordinateur le dossier où votre code sera stocké, tel que spécifié dans le fichier Homestead.yaml (ex : ~/Documents/CodeLaravel) :
mkdir ~/Documents/CodeLaravel
Lorsque votre machine virtuelle sera fonctionnelle, vous pourrez accéder à son serveur Web à partir de l’adresse indiquée dans le fichier Homestead.yaml (192.168.10.10).
Il est cependant conseillé d'utiliser un nom de domaine local. Pour y parvenir, ajoutez une entrée dans le fichier hosts de votre système (présent dans le dossier C:\Windows\System32\drivers\etc).
Ce fichier peut être édité à l'aide d'un éditeur de texte de votre choix. Cependant, à moins que l'éditeur ait été exécuté en tant qu'administrateur, le fichier hosts ne peut pas être enregistré directement à son emplacement d'origine. Vous devrez le copier à un endroit où vous disposez des droits suffisants (ex : sur le bureau) puis vous l’ouvrirez avec votre éditeur.
Ajoutez-y la ligne suivante :
192.168.10.10 homestead.test
Une fois le fichier édité et enregistré, assurez-vous que son nom est bien hosts, avec un « s » et sans extension. Copiez-le ensuite à son emplacement original.
Vous êtes maintenant prêt à lancer votre machine virtuelle.
Dans Git Bash, assurez-vous d'être dans le dossier Homestead :
cd ~/Homestead
Pour démarrer vos serveurs, lancez la commande :
vagrant up
Notez que la première fois que vous lancez cette commande, des fichiers seront importés sur votre poste de travail, ce qui rendra l'opération un peu longue. Ce sera plus rapide les fois suivantes.
Votre machine virtuelle est maintenant fonctionnelle, avec un serveur HTTP Ngnix et tout ce qu'il faut pour exécuter un programme PHP avec base de données MySQL, SQLite, PostgreSQL et plusieurs autres.
Lorsque vous programmerez, vous travaillerez sur des fichiers qui sont placés directement sur votre ordinateur et non sur votre machine virtuelle. Voici comment trouver le nom du dossier qui contiendra votre code.
Dans le fichier Homestead.yaml, vous avez indiqué que le dossier /home/vagrant/code de votre machine virtuelle pointait sur le dossier Documents/CodeLaravel de votre ordinateur.
Vous avez également dit que le site homestead.test utilisait les fichiers placés dans le dossier /home/vagrant/code/public de votre machine virtuelle.
Si on croise ces deux configurations, on comprend que le site homestead.test utilise les fichiers placés dans le dossier Documents/CodeLaravel/public de votre ordinateur. Vous aurez probablement à créer le sous-dossier public.
Vous pouvez donc tester votre machine virtuelle en créant un fichier nommé index.php dans le dossier Documents/CodeLaravel/public.
Commencez par créer le dossier public.
mkdir ~/Documents/CodeLaravel/public
Ajoutez ensuite le code suivant dans un fichier nommé index.php. Notez que ce code ne tire pas profit de Laravel. Il s’agit d’un simple fichier php qui tourne sur votre nouveau serveur pour des fins de tests. Vous pourrez installer les fichiers Laravel pour votre projet plus tard.
<!DOCTYPE html>
<html>
<body>
<?php echo 'Hello World in ' . date("Y"); ?>
</body>
</html>
Et pour tester le tout, ouvrez un navigateur et entrez-y l’URL http://homestead.test, tel que précisé dans le fichier Homestead.yaml.
Si votre navigateur vous affiche des résultats de recherche plutôt que votre site Web, assurez-vous d'écrire le http:// devant le nom de domaine local.
Vous n’aurez probablement jamais besoin de lancer votre environnement de virtualisation (VirtualBox ou VMWare) pour travailler. En effet, vos fichiers de code seront placés dans le dossier créé plus tôt sur votre ordinateur et vous accéderez à votre base de données à distance, comme vous le feriez sur n’importe quel serveur. Quelques commandes devront être lancées dans la machine virtuelle mais il sera plus rapide de passer par une console SSH sur votre ordinateur.
Si vous désirez tout de même vous connecter à votre machine virtuelle, le code d’usager Ubuntu et son mot de passe sont tous deux « vagrant ».
Si vous désirez connaître l’état de votre machine virtuelle, entrez la commande suivante :
vagrant global-status
Lorsque vous serez prêt à refermer votre machine, vous pourrez le faire à l’aide de :
vagrant halt
Il est également possible de détruire la machine virtuelle avec la commande :
vagrant destroy
Attention : les fichiers de vos projets sont stockés directement sur votre ordinateur mais votre base de donnée, elle, réside physiquement sur la machine virtuelle et sera détruite en même temps que la machine vituelle.
Avant de détruire une machine virtuelle, assurez-vous donc d'avoir en main un script SQL ou encore les fichiers de migration et de seeds à jour pour pouvoir la recréer.
Une machine ainsi détruite pourra être rebâtie aussi facilement que si on l’avait refermée avec halt. Les fichiers de votre projet seront intacts mais vous devrez recréer la base de données à l'aide de votre script SQL ou de vos fichiers de migration et de seeds.
« Quick Tip: Get a Homestead Vagrant VM Up and Running ». SitePoint. https://www.sitepoint.com/quick-tip-get-homestead-vagrant-vm-running/
« Three ways to fix the https error for .dev and .app domains in your Chrome ». UPDIVISION. https://updivision.com/blog/post/three-ways-to-fix-the-https-error-for-dev-and-app-domains-in-your-chrome
« How to Install Laravel Homestead on Windows ». Tree house. http://blog.teamtreehouse.com/laravel-homestead-on-windows
« What Is Vagrant and Why Should I Care? ». 24 Ways. https://24ways.org/2014/what-is-vagrant-and-why-should-i-care/
« How to Setup SSH Public-Key Authentication ». Scotch IO. https://scotch.io/tutorials/how-to-setup-ssh-public-key-authentication
« Tutoriel Vagrant ». SUPINFO International University. https://www.supinfo.com/articles/single/6606-tutoriel-vagrant
▼Publicité