Cela est probablement dû au fait que le serveur Web nginx ne pointe pas vers le bon chemin.
Il y a deux clés que vous devriez regarder: la map
clé sous folders
et la to
clé sous sites
. La folders
clé mappe les dossiers de votre machine locale sur la VM vagabonde. La sites
clé est utilisée pour créer un hôte virtuel sur nginx avec la valeur dans to
.
Ce que vous voulez vous assurer, c'est que to
sous sites
pointe vers le bon chemin public
.
Le problème était que j'avais créé mon projet laravel avec composer create laravel/laravel
. Cela a créé un dossier dans mon répertoire actuel nommé laravel
. Ensuite, sans changer de répertoire, j'ai installé l'assistant de ferme avec composer require laravel/homestead --dev
.
Après l'exécution php vendor/bin/homestead make
et vagrant up
ma structure de répertoires ressemblait à ceci:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Mon Homestead.yml ressemblait à ceci:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Si vous regardez de plus près, le /Users/USER/Sites/sandbox/php/laravel51
chemin sera monté sur la VM vagabonde. Ce n'est pas le bon répertoire car il doit pointer vers la racine du projet laravel où se trouve le répertoire de votre application. Ce qui s'est passé ici, c'est que j'étais censé avoir besoin de l'aide de la ferme pendant que j'étais à la racine du projet .
Alors maintenant, la question est: que dois-je faire? Vous avez deux options: vous débarrasser de votre VM homestead actuelle et recommencer, mais cette fois à partir de la racine du projet OU récupérer ce que vous avez déjà.
Si vous souhaitez récupérer ce que vous avez, vous devrez déplacer plusieurs fichiers et un dossier vers la racine de votre projet laravel.
Voici les artefacts dont vous aurez besoin pour déplacer:
.vagrant
Homestead.yml
Vagrantfile
Le composer.json
ne sera pas nécessaire puisque vous OBLIGEANT plus tard.
Déplacez ces fichiers vers la racine de votre projet laravel et remplacez-y votre répertoire de travail actuel ( cd laravel
). À ce stade, mettez simplement à jour le map
sous folders
et assurez-vous qu'il pointe vers la racine du projet. Assurez-vous également que la to
clé ci-dessous sites
est la to
clé ci-dessous folders
avec un /public
appendice.
Par exemple:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Maintenant, exécutez composer require laravel/homestead --dev
pour que l'assistant homestead soit requis dans le fichier composer.json de votre projet actuel et installé.
Courez vagrant reload --provision
et vous devriez être prêt.
vagrant up --provision
n'a pas fonctionné pour moi, mais ahomestead up --provision
fait