Dies liegt wahrscheinlich daran, dass der Nginx-Webserver nicht auf den richtigen Pfad zeigt.
Es gibt zwei Schlüssel, die Sie sich ansehen sollten: den mapSchlüssel unter foldersund den toSchlüssel unter sites. Der foldersSchlüssel ordnet Ordner auf Ihrem lokalen Computer der vagabundierenden VM zu. Der sitesSchlüssel wird verwendet, um einen virtuellen Host auf nginx mit dem Wert in zu erstellen to.
Was Sie sicherstellen möchten, ist, dass tounter sitesPunkte auf den richtigen Weg zu public.
Das Problem war, dass ich mein Laravel-Projekt mit erstellt habe composer create laravel/laravel. Dadurch wurde in meinem aktuellen Verzeichnis ein Ordner mit dem Namen erstellt laravel. Dann habe ich, ohne die Verzeichnisse zu wechseln, den Homestead-Helfer mit installiert composer require laravel/homestead --dev.
Nach dem Ausführen php vendor/bin/homestead makeund vagrant upmeine Verzeichnisstruktur sah etwas wie folgt aus :
$ cd laravel51
$ ls -a
.
..
.vagrant
laravel
composer.json
composer.lock
vendor
Homestead.yml
Vagrantfile
Mein Homestead.yml sah folgendermaßen aus:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Wenn Sie genau hinschauen, wird der /Users/USER/Sites/sandbox/php/laravel51Pfad auf der Vagrant-VM bereitgestellt. Dies ist das falsche Verzeichnis, da es auf das Laravel-Projektstammverzeichnis verweisen sollte, in dem sich Ihr App-Verzeichnis befindet. Was hier passierte war, dass ich den Homestead-Helfer benötigen sollte, während ich im Projektstamm war .
Die Frage ist nun, was mache ich? Sie haben zwei Möglichkeiten: Entfernen Sie Ihre aktuelle Homestead-VM und beginnen Sie von vorne, diesmal jedoch vom Projektstamm aus ODER retten Sie das, was Sie bereits haben.
Wenn Sie das retten möchten, was Sie haben, müssen Sie mehrere Dateien und einen Ordner in Ihr Laravel-Projektstammverzeichnis verschieben.
Dies sind die Artefakte, die Sie bewegen müssen:
.vagrant
Homestead.yml
Vagrantfile
Das composer.json wird nicht benötigt, da Sie es später benötigen.
Verschieben Sie diese Dateien in Ihr Laravel-Projektstammverzeichnis und ändern Sie Ihr aktuelles Arbeitsverzeichnis in dort ( cd laravel). Aktualisieren Sie zu diesem Zeitpunkt einfach das mapUnter foldersund stellen Sie sicher, dass es auf das Projektstammverzeichnis zeigt. Stellen Sie außerdem sicher, dass der toSchlüssel unter sitesder toSchlüssel unter istfolders mit ist/public ihm angehängt.
Beispielsweise:
folders:
- map: "/Users/USER/Sites/sandbox/php/laravel51/laravel"
to: "/home/vagrant/laravel51"
sites:
- map: laravel51
to: "/home/vagrant/laravel51/public"
Jetzt renn composer require laravel/homestead --dev so aus, dass der Homestead-Helfer in der Datei composer.json Ihres aktuellen Projekts benötigt und installiert wird.
Laufen vagrant reload --provisionSie und Sie sollten fertig sein.
vagrant up --provisionnicht für mich arbeiten, aberhomestead up --provisionhat