Ich bin neu in der Verwendung von Laravel und Homestead und würde mich über jede Hilfe oder einen Punkt in die richtige Richtung freuen. Ich konnte erfolgreich zum Bildschirm "Sie sind angekommen" gelangen, wenn ich "PHP Artisan Serve" ausführe, aber wenn ich versuche, dasselbe über Vagrant zu tun, wird "Keine Eingabedatei angegeben" angezeigt. Meine Datei Homestead.yaml sieht folgendermaßen aus:
authorize: /Users/me/.ssh/id_rsa.pub
keys:
- /Users/me/.ssh/id_rsa
folders:
- map: /Users/me/code/exampleproject
to: /home/vagrant/code/exampleproject
sites:
- map: exampleproject.app
to: /home/vagrant/code/exampleproject/public
variables:
- key: APP_ENV
value: local
Auf meinem Computer befinden sich folgende Verzeichnisse:
/Users/me/code/Homestead
/Users/me/code/exampleproject //this is the directory created with composer
Auf meiner Vagrant Box habe ich aus irgendeinem Grund zwei Verzeichnisse mit den Namen "Code" und "Code":
/home/vagrant/code/exampleproject
/home/vagrant/Code
Ich habe überprüft, und ich kann sehen, dass Änderungen an meinen Computer-Beispielprojektdateien in den Vagrant-Box-Dateien wiedergegeben werden.
Ich bin mir nicht sicher, wie ich das herausfinden soll !! Ich würde mich über jede mögliche Hilfe sehr freuen :)
vagrant up --provision
nicht für mich arbeiten, aberhomestead up --provision
hatvagrant reload --proivision
.Ich hatte genau das gleiche Problem und fand die Lösung durch die Verwendung von Larachat.
Hier erfahren Sie, wie Sie das Problem beheben können. Die Einstellungen für die Datei homestead.yaml müssen korrekt sein. Wenn Sie wissen möchten, wie es gemacht wird, folgen Sie dem Jeffery Way-Tutorial auf Homestead 2.0 https://laracasts.com/lessons/say-hello-to-laravel-homestead-two .
Um das
Input not specified
Problem zu beheben , müssen Sie in die Homestead-Box ssh und tippenserve domain.app /home/vagrant/Code/path/to/public/directory
Dadurch wird ein Serve-Skript für Nginx generiert. Sie müssen dies jedes Mal tun, wenn Sie ein Projekt wechseln.Er diskutierte auch, was ich in dieser Serie erklärt habe: https://laracasts.com/series/laravel-5-fundamentals/
quelle
serve
automatisch für alle zu laufen ?Dies ist einfach zu beheben, da Sie den Ordnernamen in: exampleproject geändert haben
Also SSH an deinen Landstreicher:
Dann ändern Sie Ihre Nginx-Konfiguration:
sudo vi /etc/nginx/sites-enabled/homestead.app
Bearbeiten Sie den richtigen URI im Stammverzeichnis in Zeile 3 mit dem neuen Ordnernamen :
Starten Sie Nginx neu
Laden Sie den Webbrowser neu, es sollte jetzt funktionieren
quelle
Für mich hat folgendes funktioniert:
vagrant reload --provision
quelle
Homestead.yaml
Datei handeln. Zum Beispiel habe ich zugeordnet,/phpmyadmin
wann mein Verzeichnisname tatsächlich warphpMyAdmin
.Ich gebe meine Antwort nur für den Fall, dass jemand mit diesem Problem zu kämpfen hat.
Möglicherweise müssen Sie überprüfen, ob die server.root-Konfiguration in "/ etc / ngnx / sites-available / domain" mit Ihrer sites.to-Konfiguration in "Homestead.yaml" übereinstimmt.
Wenn es nicht übereinstimmt, ändern Sie es und starten Sie den Webserver mit "sudo service nginx restart" neu.
Und immer noch funktionieren die Dinge nicht. Dann erlauben Sie die Schreibberechtigung für den Ordner "YOURSITE / app / storage" als "chmod -R 777 app / storage".
quelle
Ich hatte auch das gleiche Problem, ich hatte angenommen, dass Laravel "out of the box" installiert ist, aber es scheint, dass es nicht so ist. Ich habe mich an die Maschine gewandt und die folgenden Befehle ausgeführt:
Und alles lief wie gewohnt.
quelle
Dieses Problem trat bei mir nach der Bearbeitung von Homestead.yaml auf. Ich habe dieses Problem durch gelöst
quelle
Ich hatte die gleichen Probleme
Aber vergessen, dass die Spezifikationen besagten, dass sich die Konfigurationsdatei unter befinden würde
~ / .homestead / Homestead.yaml und aktualisierte ~ / Homestead / src / stubs / Homestead.yaml
Das Update war also, die Homestead.yaml hier unter zu aktualisieren
~ / .homestead / Homestead.yaml
Vor
sites: - map: homestead.app to: /home/vagrant/Laravel/public
Nach dem
sites: - map: homestead.app to: /home/vagrant/Code/mysitename/public
Dann rannte ich
vagrant up --provision
Hoffe, das funktioniert für alle anderen.
quelle
Nachdem ich einige Verzeichnisse umbenannt hatte, musste ich Vagrant zerstören und erneut ausführen. Keine der Lösungen hier hat funktioniert.
Das hat bei mir funktioniert:
quelle
Starten Sie Ihr Gehöft neu. Hat für mich gearbeitet.
quelle
Ich hatte das gleiche Problem beim Befolgen der Laravel-Dokumente ( https://laravel.com/docs/5.2/homestead) ).
Mein Problem war sehr einfach, ich habe diesen Teil in den Dokumenten nicht gelesen:
Ich habe also die falsche Datei Homestead.yaml aktualisiert, da die Datei verschoben wurde, als ich den Befehl bash init.sh ausführte.
Ich habe das erst nach langem Suchen erkannt, also hoffe, das hilft jemandem.
quelle
Ich hatte nur mit der gleichen Situation zu kämpfen. Folgendes löste das Problem:
Wenn Sie eine Verzeichnisstruktur wie diese haben:
Erstellen Sie einfach den Ordner 'public' in exampleproject auf Ihrem Host-Computer.
quelle
Ich verwende Windows 10 und habe die folgende Homestead-Konfiguration
Ich habe die Domäne homestead.local per PING bearbeitet und Ergebnisse erzielt.
Als ich jedoch http: //homestead.local in den Browser eingab, wurde der Fehler "Keine Eingabedatei angegeben" angezeigt
Ich habe den Code / öffentlichen Ordner überprüft und es gab keine Indexdatei. Ich war mir sicher, dass das System nach der Standarddatei suchte, die irgendwie fehlte.
Nachdem ich eine Indexdatei erstellt hatte, funktionierte sie einwandfrei.
Aktualisieren:
Das nächste Mal, wenn es nach einer Änderung in der Datei Homestead.yaml passiert ist , habe ich den
vagrant reload --provision
Befehl ausgeführt und es hat funktioniert.Es sieht so aus, als würde das Laufen
vagrant reload
nur die Vagabundbox nicht bereitstellen. Lies hierquelle
Vorsicht, bei Linux wird zwischen Groß- und Kleinschreibung unterschieden. Das ist wahrscheinlich der Grund, warum Sie ein "Code" - und ein "Code" -Verzeichnis sehen.
Was ich tun würde, ist das Vagrant-Setup erneut zu wiederholen und wenn Sie es einfach halten und mit dem übereinstimmen möchten, was die Homestead-Box standardmäßig hat, machen Sie Ihr Verzeichnis in Ihrem Host-Computer "Code" in Großbuchstaben.
Sie können auch im Abschnitt "Ordner" einfach Ihrem "Code" -Ordner auf Ihrem Computer zuordnen, falls Sie später weitere Websites zu Ihrem Homestead-Setup hinzufügen möchten. Auf diese Weise sehen Sie unter / home / vagrant / Code / alle Ihre Site-Projekte und können weitere Sites bewerten, die auf ihre "öffentlichen" Verzeichnisse verweisen.
quelle
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 unterfolders
und dento
Schlüssel untersites
. Derfolders
Schlüssel ordnet Ordner auf Ihrem lokalen Computer der vagabundierenden VM zu. Dersites
Schlüssel wird verwendet, um einen virtuellen Host auf nginx mit dem Wert in zu erstellento
.Was Sie sicherstellen möchten, ist, dass
to
untersites
Punkte auf den richtigen Weg zupublic
.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 erstelltlaravel
. Dann habe ich, ohne die Verzeichnisse zu wechseln, den Homestead-Helfer mit installiertcomposer require laravel/homestead --dev
.Nach dem Ausführen
php vendor/bin/homestead make
undvagrant up
meine Verzeichnisstruktur sah etwas wie folgt aus :Mein Homestead.yml sah folgendermaßen aus:
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:
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 dasmap
Unterfolders
und stellen Sie sicher, dass es auf das Projektstammverzeichnis zeigt. Stellen Sie außerdem sicher, dass derto
Schlüssel untersites
derto
Schlüssel unter istfolders
mit ist/public
ihm angehängt.Beispielsweise:
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.quelle
Dies geschieht normalerweise, wenn Sie die Datei Homestead.yaml bearbeiten Datei .
Wenn du es wie ich versucht hast
homestead up --provision
und nicht funktioniert hast! dann versuchen Sie dies (es funktioniert bei mir):homestead destroy
homestead up
quelle
Ältere Versionen von Homestead ordnen Ordner
~/Code
beispielsweise standardmäßig zu~/Code/laravel/public
. Beachten Sie die Groß- und Kleinschreibung in~/Code
. Diese unterscheiden zwischen Groß- und Kleinschreibung. Neue Versionen verwenden Kleinbuchstaben~/code
. Aktualisieren Sie diese Verzeichnisse in IhrenHomestead.yaml
entsprechend Ihren tatsächlichen Verzeichnissen.TL; DR;
Aktualisieren Sie
~/Code
auf~/code
oder umgekehrt, abhängig von Ihren tatsächlichen Verzeichnisnamen.quelle
Gleiches Problem für mich.
Weder
vagrant provision
nochhomestead up --provision
für mich gearbeitet, aber das Folgende hat funktioniert - wahrscheinlich, da Homestead bereits ausgeführt wurde, als ich die yml-Datei geändert habevagrant reload --provision
quelle
In Laravel 5 musste ich in meinen Homestead-Server ssh und diese Befehle ausführen:
quelle
Hier ist meine Lösung:
Es handelt sich um ein Dateipfadproblem. Nachfolgend sind meine Ordner- und Site-Pfade aufgeführt. Außerdem musste ich "Vagrant Destroy" verwenden, da die Bereitstellung nicht funktionierte.
quelle
Mein Problem war in der Konfigurationsdatei der Domain:
Der öffentliche Ordner meines Projekts wurde in / home / vagrant / Code / demo / public erstellt
Die Konfigurationsdatei der Domain (für mich /etc/nginx/sites-available/demo.app) hatte Folgendes konfiguriert: "/ home / vagrant / Code / Laravel / public" anstelle von "/ home / vagrant / Code / demo / public" ".
Jetzt funktioniert es perfekt.
quelle
Ich hatte ähnliche Probleme mit Homestead und nur die Bereitstellung der Box hat für mich funktioniert. Also sollten Sie Folgendes versuchen:
vagrant provision
quelle
vagrant provision
Verwandte Codes haben bei mir nicht funktioniert. Nach einiger Zeit habe ich das gesamte System neu gestartet. Jetzt gehts... -,-"quelle
I bearbeitet
homestead.yaml
undhosts
gemäß diesem laracast tutorial und erneut gestartet homestead Verwendungvagrant suspend
,vagrant halt
etc. /vagrant up
; Ich habe es auch versucht, binvagrant provision
aberno file specified
erst nach dem Neustart meines Computers verschwunden (ich bin auf einem Windows 7-PC) verschwunden, nachdem ich alle oben genannten Schritte ausgeführt habe. Es ist sicherlich ein zeitaufwändiger und kniffliger Fehler.So
homestead.yaml
sieht meine Arbeit für zwei Laravel-Projekte aus:und hier ist meine
hosts
Akte:Beachten Sie, dass es zwei separate Installationen von Laravel in gibt
D:\Projects\ProjectOne
undD:\Projects\ProjectTwo
Ich greife dann auf das erste Projekt zu, indem ich
projectone.app:8000
im Browser und tippeprojecttwo.app:8000
für das zweite Projekt tippe.PS Ich habe dies für Laravel 5.2 unter Windows getestet
quelle
Dies liegt daran, dass Sie Ihren Nginx-Server ordnungsgemäß konfigurieren müssen, um Ihre Anwendung bedienen zu können. Sie können dies anhand dieses Handbuchs tun, beginnend mit dem Thema Konfigurieren von Nginx und dem Webstamm .
Nachdem Sie Ihre symbolische Verknüpfung zwischen / etc / nginx / sites-available und / etc / nginx / sites-enabled ordnungsgemäß konfiguriert haben , müssen Sie sicherstellen, dass Ihre Stammvariable auf den Ordnerpfad Ihrer Anwendung festgelegt ist. Stellen Sie Ihre Nginx-Wurzel von ein
zu
Außerdem müssen Sie index.php vor Ihren HTML-Dateien platzieren, damit PHP vor HTML bereitgestellt wird. Ändere das
dazu
Starten Sie nach Abschluss Ihrer Konfiguration Ihren Nginx-Server mit neu
Ihre Bewerbung sollte jetzt zugestellt werden.
quelle
Ich hatte so ein Problem. Ich habe die Datei Homestead.yaml überprüft und alle Dateien und alle Einstellungen waren korrekt. Mein Problem wurde nach den folgenden Schritten behoben.
1-Wenn Sie sich in der Befehlszeile von vagrant @ homestead: ~ $ befinden, geben Sie
exit
command ein.2- Jetzt müssen Sie sich im Homestead-Ordner befinden. Führen Sie diesen Befehl aus
3- laufen
vagrant ssh
Wenn Sie nun die zugehörige Adresse in Ihren Browser eingeben, sollte die Laravel-Seite angezeigt werden.
quelle
Starten Sie Ihren Computer neu
Hatte ein funktionierendes Homestead, das lokal ausgeführt wurde, was irgendwann aufhörte und den Fehler "Keine Eingabedatei angegeben" erhielt. Ich konnte es nicht verfolgen.
Bei einem Neustart des Computers verschwand der Fehler.
quelle
Wenn Sie den Ordner mit Ihrem Homestead-Projekt umbenannt haben, wird diese Fehlermeldung angezeigt. Besuchen Sie Ihre
Homestead.yaml
Datei und aktualisieren Sie alle Verweise, um auf den umbenannten Ordner zu verweisen. Führen Sie dannvagrant up
(usw.) erneut ausquelle
Wenn Sie eine neue Version von Larval 7> = verwenden, können Sie diese aus Ihrem Homested-Verzeichnis verwenden
vagrant provision
quelle