Homestead
Laravel propose un environnement de développement local. Laravel Homestead est une box Vagrant officielle qui vous offre un environnement de développement sans vous obliger à installer PHP, un serveur Web et tout autre logiciel serveur sur votre machine locale.
Vagrant offre un moyen simple et élégant de gérer et de provisionner des machines virtuelles.
Les boxs Vagrant sont entièrement jetables. Si quelque chose ne va pas, vous pouvez détruire et recréer la box en quelques minutes !
Homestead fonctionne sur n'importe quel système Windows, macOS ou Linux et inclut Nginx, PHP, MySQL, PostgreSQL, Redis, Memcached, Node et tous les autres logiciels dont vous avez besoin pour développer des applications Laravel étonnantes.
Pour installer Homestead, il faut d'abord installer Vagrant, et VirtualBox 6.1 ou Parallels
A l'installation, sélectionner "Utiliser git Bash"
Ouvrez un terminal
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git ~/Homestead
cd Homestead
bash init.sh
A l'aide d'un éditeur de texte, ouvrez sur Windows c:/Users/nom-utilisateur/homestead/Homestead.yaml, sur mac ~/homestead/Homestead.yaml, c'est le fichier de configuration de homestead
ip: "192.168.56.56" // l'adresse ip local de votre machine
memory: 2048 // mémoire alloué
cpus: 2 // processeurs alloués
provider: virtualbox // provider
Les clés SSH, ne changez rien, sauf si vous maitrisez cette partie
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
Ensuite on a le mapping, la correspondance du dossier sur la virtual box "map", et votre dossier de travail sur votre machine "to"
folders:
- map: ~/code
to: /home/vagrant/code
Par exemple ma configuration, évitez toujours de travailler sur le disque "system", si un crash se produit, vous perdriez tous vos travaux
folders:
- map: d:\00 - TRAVAUX\0000-homestead
to: /home/vagrant/code
Ensuite vient les sites, c'est a dire tous les sites web de votre box
sites:
- map: homestead.test
to: /home/vagrant/code/public
On fait systématiquement correspondre un nom de domaine local a un dossier de travail, il faudra ajouter ces noms de domaine locaux a votre fichier hosts.
Sur macos ou linux /etc/hosts, sur pc C:\Windows\System32\drivers\etc\hosts a éditer en mode administrateur
On peut utiliser n'importe quel nom de domaine à condition qu'il n'existe pas sur internet, c'est pourquoi il est recommandé de les suffixer par .test ou .local
192.168.56.56 homestead.test
on peut également ajouter des options
- map: pma.test
to: /home/vagrant/code/phpmyadmin
type: apache
php: "7.4"
- map: theblob.test
to: /home/vagrant/code/theblob/public
type: apache
php: "8.0"
schedule: true
Dans ces 2 exemples, j'ai besoin de version spécifique de php, je suis obligé d'utiliser type: apache et ensuite de spécifier la version de php
Dans le second exemple, mon projet laravel nécessite de "scheduler" certaines taches cron
Ensuite vient les bases de données
databases:
- theblob
- sherpa
Enfin, les options de configurations
features:
- mariadb: false
- ohmyzsh: false
- webdriver: false
A présent, nous pouvons lancer la box, il faut se placer dans le dossier home/homestead de l'utilisateur loggé, lancez bash puis
cd ~
cd homestead
vagrant up
vagrant up va construire la box et le mappage la première fois et simplement lancer la box les autres fois.
A présent, dans votre navigateur a l'url http://homestead.test, vous devriez voir ce message d'erreur, c'est normal, a ce stade le dossier "/home/vagrant/code/public" n'existe pas. En fait c'est que tout fonctionne
Quelques commandes de vagrant
vagrant up // lance la box
vagrant suspend // met la box en "pause"
vagrant halt // stop la box
vagrant ssh // permet de se connecter au serveur virtuel
vagrant reload // relance la box
vagrant reload --provision // relance la box et reconstruit la box, c'est obligatoire en cas de modification de Homestead.yaml
Le 20 avril 2023
Temps de lecture : 10 min