Lorsque Laravel Homestead est sorti pour la première fois, c’était un référentiel Github qui comprenait une base Homestead.yaml
par défaut. Il n’y avait pas d’endroit prescrit pour l’installer, pas de commandes globales pour accéder à la boîte, et chaque fois que vous personnalisiez réellement votre Homestead.yaml
file vous a instantanément sali votre clone Homestead Github, rendant la mise à niveau difficile.
Vous pouvez deviner où je veux en venir. Toutes ces choses ne sont plus des problèmes. La dernière version de l’écosystème Homestead vient d’être publiée, et elle a déplacé Homestead dans un package Composer installable globalement qui copie Homestead.yaml
(et tout autre fichier modifiable par l’utilisateur) dans ~/.homestead
sur votre appareil. De cette façon, il y a un futur chemin de mise à niveau clair ; vous obtenez un accès mondial instantané ; et il est clair où votre fichier de configuration doit vivre.
Installation fraîche
Comme toujours, les documents Laravel sont le meilleur endroit où aller pour les instructions d’installation les plus complètes. Mais voici la section la plus différente du passé, copiée directement de la documentation :
Installation de Homestead
Une fois la boîte ajoutée à votre installation Vagrant, vous êtes prêt à installer l’outil CLI Homestead à l’aide de la commande globale Composer :
composer global require "laravel/homestead=~2.0"
Assurez-vous de placer le
~/.composer/vendor/bin
répertoire dans votre PATH afin que lehomestead
exécutable est trouvé lorsque vous exécutez lehomestead
commande dans votre terminal.Une fois que vous avez installé l’outil Homestead CLI, exécutez la commande init pour créer le
Homestead.yaml
fichier de configuration:homestead init
Le
Homestead.yaml
le fichier sera placé dans le~/.homestead
annuaire. Si vous utilisez un système Mac ou Linux, vous pouvez modifierHomestead.yaml
fichier en exécutant la commande homestead edit dans votre terminal :homestead edit
Commandes disponibles
Lorsque vous regardez la liste des commandes disponibles, cela ressemblera beaucoup à ce que vous aviez disponible via vagrant :
- Détruire
- Modifier
- Arrêt
- Init
- CV
- En haut
- Mise à jour
- Chut
- Statut
- Suspendre
Ce qui est génial maintenant, c’est que vous pouvez exécuter n’importe lequel d’entre eux depuis n’importe où sur votre machine en tapant simplement homestead COMMAND
.
Vous remarquerez cependant quelques commandes uniques, qui ne sont pas simplement des correspondances avec la même commande Vagrant :
Modifier la ferme
Comme vous l’avez lu dans la documentation, Homestead edit (sur les machines Mac et Linux) ouvrira automatiquement votre Homestead.yaml
fichier dans l’éditeur par défaut de votre système.
Initialisation de la ferme
Homestead init crée le ~/.homestead
répertoire et place un nouveau squelette Homestead.yaml
y déposer, ainsi que after.sh
et aliases
deux fichiers supplémentaires qui vous permettent de personnaliser votre provisionnement.
Mise à jour de la ferme
La mise à jour de Homestead s’exécute vagrant box update
afin que vous puissiez mettre à jour l’image de la machine Homestead. Par exemple, lorsque Taylor ajoutera PHP 5.7, ce sera le moyen de mettre à niveau votre image Homestead.
Nouvelle configuration “base de données”
En plus de folders
et sites
il y a maintenant un databases
option dans Homestead.yaml
qui vous permet de spécifier les bases de données que la boîte vagabonde doit créer lors de sa mise en service.
Nouveau fichier “after.sh”
Lorsque vous entrez dans votre nouveau ~/.homestead
répertoire, vous verrez deux fichiers familiers—Homestead.yaml
et aliases
— et un nouveau, after.sh
.
.
..
Homestead.yaml
after.sh
aliases
De l’interne after.sh
documents :
If you would like to do some extra provisioning you may
add any commands you wish to this file and they will
be run after the Homestead machine is provisioned.
Le chemin de mise à niveau
IMPORTANT: Au moment d’écrire ces lignes, je ne sais pas comment mettre à niveau vers la nouvelle version de Homestead sans créer simplement une nouvelle boîte Homestead à partir de zéro. Vous ne serez pas perdre votre ancienne boîte (vous pouvez toujours accéder à l’ancienne), mais votre nouvelle boîte sera fraîche et non importée de l’ancienne. Savez-vous comment? Merci de me le faire savoir sur Twitter : @stauffermatt
La plupart d’entre vous qui lisez ceci utilisent déjà Homestead. Alors, à quoi ressemble le chemin de mise à niveau ?
Pour commencer, installez-le globalement et assurez-vous que la corbeille Composer se trouve dans votre PATH (comme ci-dessus).
Maintenant, cours homestead init
n’importe où dans votre terminal. Vous devriez voir la sortie suivante :
○ homestead init
Creating Homestead.yaml file... ✔
Homestead.yaml file created at: /Users/mattstauffer/.homestead/Homestead.yaml
Si vous consultez le nouveau ./homestead
répertoire, vous verrez votre squelette de fichier de configuration. Maintenant, copiez simplement votre ancien aliases
fichier et Homestead.yaml
déposer; Par exemple:
cp ~/OldHomesteadDirectory/Homestead.yaml ~/.homestead
cp ~/OldHomesteadDirectory.aliases ~/.homestead
Maintenant, ajoutez un morceau au bas de votre Homestead.yaml
fichier qui ressemble à ceci :
databases:
- homestead
Maintenant, vous devriez pouvoir courir homestead up
de n’importe où et voir la première disposition. Remarque, comme je l’ai écrit ci-dessus : il s’agit de créer une nouvelle boîte Homestead à partir de zéro (en utilisant votre Homestead.yaml
déposer), pas importer votre ancien. Vous devrez donc re-migrer et amorcer vos bases de données, etc.
Mises en garde : la première fois que j’ai couru
homestead up
avec la nouvelle version, j’ai eu beaucoup d’erreurs. J’ai mis à jour ma boîte Homestead (homestead update
), et la prochaine fois que j’ai provisionné, je n’ai pas eu d’erreurs. Je ne sais pas si le correctif l’exécutait simplement deux fois ou mettait à niveau l’image de la machine, mais dans tous les cas, tout fonctionne correctement maintenant.
C’est ça. La migration peut être un peu pénible (bien que cela puisse être une motivation pour créer de meilleures migrations et graines 😉 ), mais c’est un système beaucoup plus propre avec un chemin de mise à niveau beaucoup plus clair. Beaucoup de réjouissance !