Es probable que esto se deba a que el servidor web nginx no apunta a la ruta correcta.
Hay dos claves que debe mirar: la map
clave debajo folders
y la to
clave debajo sites
. La folders
clave asigna carpetas en su máquina local a la máquina virtual vagabunda. La sites
clave se usa para crear un host virtual en nginx con el valor en to
.
Lo que quiere asegurarse es que to
bajo sites
apunta al camino correcto hacia public
.
El problema fue que creé mi proyecto laravel con composer create laravel/laravel
. Esto creó una carpeta en mi directorio actual llamada laravel
. Luego, sin cambiar de directorio, instalé el asistente de homestead con composer require laravel/homestead --dev
.
Después de ejecutar php vendor/bin/homestead make
y vagrant up
mi estructura de directorio se veía así:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Mi Homestead.yml se veía así:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Si miras de cerca, la /Users/USER/Sites/sandbox/php/laravel51
ruta se montará en la VM vagabunda. Este es el directorio incorrecto porque debería apuntar a la raíz del proyecto laravel donde está el directorio de tu aplicación. Lo que sucedió aquí fue que se suponía que debía requerir el ayudante de la granja mientras estaba en la raíz del proyecto .
Entonces ahora la pregunta es ¿qué hago? Tiene dos opciones: deshacerse de su VM actual de homestead y comenzar de nuevo, pero esta vez desde la raíz del proyecto O rescatar lo que ya tiene.
Si desea salvar lo que tiene, tendrá que mover varios archivos y una carpeta a la raíz de su proyecto laravel.
Estos son los artefactos que necesitará mover:
.vagrant
Homestead.yml
Vagrantfile
El composer.json
no será necesario ya que va a lo requieran más tarde.
Mueva esos archivos a la raíz de su proyecto laravel y cambie su directorio de trabajo actual allí ( cd laravel
). En ese punto, simplemente actualice el map
debajo folders
y asegúrese de que apunte a la raíz del proyecto. También asegúrese de que la to
clave de abajo sites
sea la to
clave de abajo folders
con la que se /public
adjunta.
Por ejemplo:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Ahora ejecútelo composer require laravel/homestead --dev
para que se requiera el asistente de homestead en el archivo composer.json de su proyecto actual y se instale.
Corre vagrant reload --provision
y deberías estar listo.
vagrant up --provision
no funcionó para mí, perohomestead up --provision
sí