Jest to prawdopodobne, ponieważ serwer WWW nginx nie jest wskazuje właściwej ścieżki.
Są dwa klucze, na które powinieneś spojrzeć: map
klucz pod folders
i to
klucz pod sites
. folders
Klucz odwzorowuje foldery na komputerze lokalnym do Vagrant VM. sites
Klucz służy do tworzenia wirtualnego hosta na nginx z wartości to
.
Chcesz się upewnić, że pozycja to
poniżej sites
wskazuje właściwą ścieżkę public
.
Problem polegał na tym, że stworzyłem projekt laravela z composer create laravel/laravel
. Spowodowało to utworzenie folderu w moim bieżącym katalogu o nazwie laravel
. Następnie bez zmiany katalogów zainstalowałem pomocnika homestead z composer require laravel/homestead --dev
.
Po uruchomieniu php vendor/bin/homestead make
i vagrant up
moja struktura katalogów wyglądał mniej więcej tak:
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Mój Homestead.yml wyglądał tak:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Jeśli przyjrzysz się uważnie, /Users/USER/Sites/sandbox/php/laravel51
ścieżka zostanie zamontowana na włóczącej się maszynie wirtualnej. To jest zły katalog, ponieważ powinien wskazywać na katalog główny projektu Laravel, w którym znajduje się katalog aplikacji. To, co się tutaj stało, polegało na tym, że miałem potrzebować pomocnika zagrody, gdy byłem w katalogu głównym projektu .
Więc teraz pytanie brzmi, co mam zrobić? Masz dwie opcje: pozbądź się obecnej maszyny wirtualnej z homestead i zacznij od nowa, ale tym razem z katalogu głównego projektu LUB odzyskaj to, co już masz.
Jeśli chcesz uratować to, co masz, musisz przenieść kilka plików i folder do katalogu głównego projektu laravel.
Oto artefakty, które musisz przenieść:
.vagrant
Homestead.yml
Vagrantfile
Plik composer.json
będzie potrzebne, ponieważ będziesz tego potrzebować później.
Przenieś te pliki do katalogu głównego projektu laravel i zmień tam obecny katalog roboczy ( cd laravel
). W tym momencie po prostu zaktualizuj map
under folders
i upewnij się, że wskazuje na katalog główny projektu. Upewnij się również, że to
klucz pod sites
to to
klucz pod folders
z /public
dołączonym do niego kluczem .
Na przykład:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Teraz uruchom composer require laravel/homestead --dev
tak, aby pomocnik homestead był wymagany w pliku composer.json bieżącego projektu i został zainstalowany.
Biegnij vagrant reload --provision
i wszystko powinno być gotowe.
vagrant up --provision
nie działa dla mnie, alehomestead up --provision
tak