warum ist der php artisan serve server von laravel nicht über das www auf iis erreichbar?

12

Ich habe eine Laravel-Anwendung, die über den Laravel Artisan- Server ausgeführt wird :

 php artisan serve

und es funktioniert einwandfrei, wenn ich weiter mache localhost:8000. Außerdem habe ich dem IIS-Server eine eingehende Regel hinzugefügt, die so aussieht:

Systemsteuerung -> Verwaltung -> Windows-Firewall mit erweiterter Sicherheit, eingehende Regeln. Erstellen Sie eine neue Regel "Allow Port, TCP, 8000, All profiles"

Aus irgendeinem Grund kann ich jedoch immer noch nicht über das WWW auf die Website zugreifen (ich habe genau die gleichen Schritte für einen Webrick-Server (auf demselben Computer) ausgeführt und die Dinge haben perfekt funktioniert). Irgendwelche Ideen?

Abbood
quelle
1
Ohne dass artisanich Laravel oder kenne , denke ich, dass es localhostnur standardmäßig gebunden ist und dass Sie es so konfigurieren müssen, dass es nicht lokale Anforderungen verarbeitet. Schlagen Sie in den Dokumenten des Systems nach, um dies zu überprüfen.
Sven
@SvW ist richtig.
Ceejayoz

Antworten:

29

Damit es außerhalb von localhost funktioniert, tun Sie Folgendes php artisan serve --host 0.0.0.0

Wenn Sie es an die Arbeit möchten , ohne den Anschluss im Browser Angabe php artisan serve --host 0.0.0.0 --port 80. sudowird wahrscheinlich erforderlich sein.

Hinweis: php artisan servesollte niemals für die Produktion verwendet werden. Es ist nur für Entwickler und Demonstratoren gedacht und kann nicht mehr als den Verkehr von ein oder zwei Personen bewältigen.

ceejayoz
quelle
Ok, hört sich gut an. In der Tat konnte ich es anhand Ihrer Anweisungen aus dem WWW (dh mydomain.com:8080) anzeigen. Ich frage mich jedoch immer noch, warum ich Apache nicht dazu bringen kann, es dem WWW zuzuführen. Dies ist mein spezifisches Szenario: Laufen artisan servemacht es gut .. aber wenn ich Apache page not foundeinschalte, bekomme ich Fehler. Ich habe ein Beispiel-Laravel-Projekt mit Composer erstellt. Und das hat auch mit Apache gut funktioniert tatsächlich von der Maschine eines anderen Entwicklers kopiert. Ich gehe davon aus, dass es etwas mit Dateiberechtigungen zu tun haben könnte.
Abbood
2
Sie müssen Apache so konfigurieren, dass es auf das richtige Verzeichnis verweist. Siehe laravel.com/docs/installation#pretty-urls .
Ceejayoz
ok .. ich AllowOverridehabe Allin der httpd.confdatei in der definition der DocumentRootwie hier angegeben geändert .. aber das hat nicht funktioniert .. auf der laravel website steht, wenn das nicht funktioniert, versuche es Options +FollowSymLinks RewriteEngine On .... aber ich bin nicht sicher wohin diese Dinge setzen? Sollen sie auch auf dieselbe httpd.conf-Datei zugreifen?
Abbood
Ist Ihr DocumentRoot auf das öffentliche Verzeichnis gerichtet?
Ceejayoz
1
@colinhoernig Denken Sie daran, es niemals für die Produktion zu verwenden.
Ceejayoz