Installation de Homestead sous Windows pour développer en Laravel

Laravel, un framework PHP utilisant le patron de conception MVC, peut être installé directement sur votre poste de travail et tourner dans un environnement de développement comme EasyPHP ou Xampp. 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.

Cet article vous indiquera la procédure détaillée à suivre pour installer Homestead sur un poste de travail Windows.

▼Publicité

Sur un poste de travail Windows, la virtualisation peut être faite avec VMWare ou avec VirtualBox. Il est à noter que l’installation VMWare nécessitera des frais d’environ 80 USD alors qu’aucun frais ne sera encouru avec VirtualBox.

Grâce aux configurations qui suivent, vous pourrez programmer avec le framework PHP Laravel à partir de votre ordinateur Windows. Votre code tournera sur une machine virtuelle Linux Ubuntu installée elle aussi sur votre ordinateur.

Voici comment y parvenir :

  1. 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.

    ou

    Téléchargez et installez VMWare Workstation Player (la version Player est gratuite pour l’utilisation personnelle mais vous aurez un module à acheter – les détails vous seront présentés plus loin) : http://www.vmware.com/ca/fr/products/player/.

    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.

  2. 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.

    1. Redémarrez votre ordinateur puis appuyez sur F12 de façon répétée pendant le démarrage.
    2. Choisissez BIOS setup.

      Bios Dell

    3. Sur mon DELL, l’option « Enable Intel Virtualization Technology » était activée par défaut.

      BIOS setup - virtualisation

  3. Vagrant est un outil permettant 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.

  4. Pour que Vagrant fonctionne avec un environnement virtuel VMWare, vous devez acheter une extension (pas de frais ni d’extension à installer si vous utilisez VirtualBox plutôt que VMWare).

    Donc, si vous utilisez VMWare plutôt que VirtualBox, téléchargez et installez l’extension VMWare Vagrant (payant) : http://www.vagrantup.com/vmware

  5. 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 :

    Fenêtre de commande DOS

    vagrant -v

    Le système devrait répondre en vous donnant la version installée (votre version sera assurément plus récente que celle indiquée sur l'impression d'écran).

    vagrant -v

  6. 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.

    Sur votre ordinateur, ouvrez une fenêtre de commande et lancez la commande :

    Fenêtre de commande DOS

    vagrant box add laravel/homestead

    Attention : cette étape peut être longue si vous n'avez pas accès à une connexion Internet rapide.

    vagrant box add laravel/homestead

  7. 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, 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.

    • Téléchargez Git : https://git-scm.com/downloads.
    • Il est intéressant de faire une vraie installation même si, pour l'instant, seul Git Bash nous intéresse. En effet, Git pourrait être utilisé pour gérer les versions d'autres programmes et documents qui ne sont pas sur une machine virtuelle.

      Dans le premier écran de configuration, choisissez l'option « Use Git from the Windows Command Prompt ».

      Git Setup

    • Le second écran offre des choix pour gérer les caractères de saut de ligne, qui son différents sous Windows et sous Linux. Choisissez « Chechout Windows-style, commit Unix-style line endings ».

      Git Setup

    • Dans le troisième écran, choisissez « Use MinTTY ».

      Git Setup

    • Dans le quatrième et dernier écran, cochez les deux premières options.

      Git Setup

  8. Lancez l’application Git Bash.

    Git Bash

  9. Vous avez 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. Mais avant, il vous faudra effectuer quelques manipulations.

    Commencez par faire un clone des scripts et des fichiers de configuration de Homestead disponibles sur Git à l’aide de la commande :

    Console Git Bash

    git clone https://github.com/laravel/homestead.git Homestead

    Cloner Homestead

  10. Tel qu’indiqué dans le dernier paramètre le la commande git clone, ceci a créé un nouveau dossier nommé Homestead. Ce dossier est placé directement dans votre dossier personnel (C:\Users\VotreNom\Homestead).

    Fichiers créés par clonage Homestead

  11. Dans Git Bash, déplacez-vous dans le dossier Homestead :

    Console Git Bash

    cd ~/Homestead

  12. Pour lancer le script init.sh présent dans le dossier Homestead, entrez la commande :

    Console Git Bash

    bash init.sh

    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.

    Ce script créera le fichier Homestead.yaml dans un dossier caché .homestead placé dans votre dossier personnel (C:\Users\VotreNom\.homestead\Homestead.yaml).

    bash init.sh

  13. 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 :

    Console Git Bash

    cd ~

    Pour générer la clé, entrez la commande :

    Console Git Bash

    ssh-keygen -t rsa -C 'votrecourriel@votredomaine.com'

    Acceptez l’emplacement par défaut (Users/VotreNom/.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, 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.

    Génération de la clé SSH

  14. À l’aide de l’éditeur de votre choix, ouvrez le fichier Homestead.yaml. Attention : le nom du dossier qui contient Homestead.yaml débute par un point : .homestead. Il existe également un dossier Homestead (sans point) mais ce n'est pas là que vous devez travailler.

    Voici le contenu original de ce fichier :

    Fichier Homestead.yaml

  15. Assurez-vous que les configurations sont les suivantes :

    1. provider : virtualbox (ou vmware_fusion, ou vmware_workstation selon votre environnement de virtualisation)
    2. authorize : le dossier où votre clé SSH a été générée (devrait être OK si vous avez conservé la valeur par défaut)
  16. Modifiez le nom du dossier où votre code sera stocké (par défaut, ~/Code). Suggestion : placez le dossier sous Documents (ex : ~/Documents/CodeLaravel).

    Ex :

    Fichier Homestead.yaml

    folders:

        - map: ~/Documents/CodeLaravel

          to: /home/vagrant/Code

    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.

  17. Créez sur votre ordinateur le dossier où votre code sera stocké, tel que spécifié dans le fichier Homestead.yaml (ex : ~\Documents\CodeLaravel) :

    Console Git Bash

    mkdir ~/Documents/CodeLaravel

  18. 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).

    Si vous préférez utiliser un nom de domaine, 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 :

    Fichier hosts

    192.168.10.10    homestead.app

    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.

  19. Vous êtes maintenant prêt à lancer votre machine virtuelle.

    Dans Git Bash, revenez dans le dossier Homestead :

    Console Git Bash

    cd ~/Homestead

    Pour démarrer vos serveurs, lancez la commande :

    Console Git Bash

    vagrant up

    Attention : cette étape peut être longue si vous n'avez pas accès à une connexion Internet rapide.

    vagrant up

  20. Votre machine virtuelle est maintenant fonctionnelle, avec tous les serveurs requis pour exécuter un programme PHP avec base de données MySQL ou PostgreSQL.

    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.app utilisait les fichiers placés dans le dossier /home/vagrant/Code/Laravel/public de votre machine virtuelle.

    Si on croise ces deux configurations, on comprend que le site homestead.app utilise les fichiers placés dans le dossier Documents/CodeLaravel/Laravel/public. Vous aurez probablement à créer les sous-dossiers Laravel et public.

    Vous pouvez donc tester votre machine virtuelle en créant un fichier nommé index.php dans le dossier Documents/CodeLaravel/Laravel/public.

    Ajoutez le code suivant dans index.php. Attention : 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.

    PHP

    <!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.app, tel que précisé dans le fichier Homestead.yaml.

    Page de test

  21. 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 ».

  22. Si vous désirez connaître l’état de votre machine virtuelle, entrez la commande suivante :

    Console Git Bash

    vagrant global-status

    vagrant global-status

  23. Lorsque vous serez prêt à refermer votre machine, vous pourrez le faire à l’aide de :

    Console Git Bash

    vagrant halt

    vagrant halt

    Il est également possible de détruire la machine virtuelle avec la commande « vagrant destroy ».

    Console Git Bash

    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 seed à 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.

Pour plus d'information

« Quick Tip: Get a Homestead Vagrant VM Up and Running ». SitePoint. https://www.sitepoint.com/quick-tip-get-homestead-vagrant-vm-running/

« 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

Merci de partager ! Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInPin on PinterestShare on StumbleUponEmail this to someone
Catégories