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 mapclave debajo foldersy la toclave debajo sites. La foldersclave asigna carpetas en su máquina local a la máquina virtual vagabunda. La sitesclave se usa para crear un host virtual en nginx con el valor en to.
Lo que quiere asegurarse es que tobajo sitesapunta 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 makey vagrant upmi 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/laravel51ruta 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.jsonno 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 mapdebajo foldersy asegúrese de que apunte a la raíz del proyecto. También asegúrese de que la toclave de abajo sitessea la toclave de abajo folderscon la que se /publicadjunta.
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 --devpara que se requiera el asistente de homestead en el archivo composer.json de su proyecto actual y se instale.
Corre vagrant reload --provisiony deberías estar listo.
vagrant up --provisionno funcionó para mí, perohomestead up --provisionsí