20 avril 2023   |   De Jérôme Borg   |    Laravel

Homestead

Homestead

<p>Laravel propose un environnement de d&eacute;veloppement local. Laravel Homestead est une box Vagrant officielle qui vous offre un environnement de d&eacute;veloppement sans vous obliger &agrave; installer PHP, un serveur Web et tout autre logiciel serveur sur votre machine locale.</p> <p>Vagrant offre un moyen simple et &eacute;l&eacute;gant de g&eacute;rer et de provisionner des machines virtuelles.&nbsp;</p> <p>Les boxs Vagrant sont enti&egrave;rement jetables. Si quelque chose ne va pas, vous pouvez d&eacute;truire et recr&eacute;er la box en quelques minutes !</p> <p>Homestead fonctionne sur n'importe quel syst&egrave;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&eacute;velopper des applications Laravel &eacute;tonnantes.</p> <p><a href="https://laravel.com/docs/11.x/homestead" target="_blank" rel="noopener">Documentation officielle</a></p> <p>Pour installer Homestead, il faut d'abord installer&nbsp;<a href="https://developer.hashicorp.com/vagrant/downloads" target="_blank" rel="noopener">Vagrant</a>, et&nbsp;<a href="https://www.virtualbox.org/wiki/Download_Old_Builds_6_1" target="_blank" rel="noopener">VirtualBox 6.1</a>&nbsp;ou&nbsp;<a href="https://www.parallels.com/products/desktop/" target="_blank" rel="noopener">Parallels&nbsp;</a></p> <p>A l'installation, s&eacute;lectionner "Utiliser git Bash"</p> <p>Ouvrez un terminal</p> <pre class="language-bash"><code>vagrant box add laravel/homestead git clone https://github.com/laravel/homestead.git ~/Homestead cd Homestead bash init.sh</code></pre> <p>A l'aide d'un &eacute;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</p> <pre class="language-php"><code>ip: "192.168.56.56" // l'adresse ip local de votre machine memory: 2048 // m&eacute;moire allou&eacute; cpus: 2 // processeurs allou&eacute;s provider: virtualbox // provider</code></pre> <p>Les cl&eacute;s SSH, ne changez rien, sauf si vous maitrisez cette partie</p> <pre class="language-php"><code>authorize: ~/.ssh/id_rsa.pub keys: - ~/.ssh/id_rsa</code></pre> <p>Ensuite on a le mapping, la correspondance du dossier sur la virtual box "map", et votre dossier de travail sur votre machine "to"</p> <pre class="language-php"><code>folders: - map: ~/code to: /home/vagrant/code</code></pre> <p>Par exemple ma configuration, &eacute;vitez toujours de travailler sur le disque "system", si un crash se produit, vous perdriez tous vos travaux</p> <pre class="language-php"><code>folders: - map: d:\00 - TRAVAUX\0000-homestead to: /home/vagrant/code</code></pre> <p>Ensuite vient les sites, c'est a dire tous les sites web de votre box</p> <pre class="language-php"><code>sites: - map: homestead.test to: /home/vagrant/code/public</code></pre> <p>On&nbsp; fait syst&eacute;matiquement correspondre un nom de domaine local a un dossier de travail, il faudra ajouter ces noms de domaine locaux a votre fichier hosts.</p> <p>Sur macos ou linux /etc/hosts, sur pc C:\Windows\System32\drivers\etc\hosts a &eacute;diter en mode administrateur</p> <p>On peut utiliser n'importe quel nom de domaine &agrave; condition qu'il n'existe pas sur internet, c'est pourquoi il est recommand&eacute; de les suffixer par .test ou .local</p> <pre class="language-php"><code>192.168.56.56 homestead.test</code></pre> <p>on peut &eacute;galement ajouter des options</p> <pre class="language-php"><code>- 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</code></pre> <p>Dans ces 2 exemples, j'ai besoin de version sp&eacute;cifique de php, je suis oblig&eacute; d'utiliser type: apache et ensuite de sp&eacute;cifier la version de php</p> <p>Dans le second exemple, mon projet laravel n&eacute;cessite de "scheduler" certaines taches cron</p> <p>Ensuite vient les bases de donn&eacute;es</p> <pre class="language-php"><code> databases: - theblob - sherpa</code></pre> <p>Enfin, les options de configurations</p> <pre class="language-php"><code>features: - mariadb: false - ohmyzsh: false - webdriver: false</code></pre> <p>A pr&eacute;sent, nous pouvons lancer la box, il faut se placer dans le dossier home/homestead de l'utilisateur logg&eacute;, lancez bash puis</p> <pre class="language-php"><code>cd ~ cd homestead vagrant up</code></pre> <p>vagrant up va construire la box et le mappage la premi&egrave;re fois et simplement lancer la box les autres fois.</p> <p>A pr&eacute;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</p> <p><img src="../../../files/post-body-1737882404.png"></p> <p>Quelques commandes de vagrant</p> <pre class="language-bash"><code>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</code></pre> <p>&nbsp;</p>
De Jérôme Borg
Le 20 avril 2023
Temps de lecture : 10 min
Jérôme Borg
Jérôme Borg

Développeur fullstack laravel/VueJs, formateur

Tous les articles de cet auteur
Articles recommandés
Le Crud
Le Crud
Jérôme Borg De Jérôme Borg | 11 avril 2023 | Lu : 21min
La validation
La validation
Jérôme Borg De Jérôme Borg | 24 avril 2023 | Lu : 15min