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 map
Schlüssel unter folders
und den to
Schlüssel unter sites
. Der folders
Schlüssel ordnet Ordner auf Ihrem lokalen Computer der vagabundierenden VM zu. Der sites
Schlüssel wird verwendet, um einen virtuellen Host auf nginx mit dem Wert in zu erstellen to
.
Was Sie sicherstellen möchten, ist, dass to
unter sites
Punkte 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 make
und vagrant up
meine 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/laravel51
Pfad 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 map
Unter folders
und stellen Sie sicher, dass es auf das Projektstammverzeichnis zeigt. Stellen Sie außerdem sicher, dass der to
Schlüssel unter sites
der to
Schlü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 --provision
Sie und Sie sollten fertig sein.
vagrant up --provision
nicht für mich arbeiten, aberhomestead up --provision
hat