dlaczego serwer serwujący php rzemieślnika laravela nie jest dostępny z WWW na IIS

12

Mam aplikację laravel działającą przez serwer rzemieślnika laravel :

 php artisan serve

i działa dobrze, jeśli przejdę na mój localhost:8000.. Ponadto dodałem regułę ruchu przychodzącego na serwerze IIS w następujący sposób:

Panel sterowania -> Narzędzia administracyjne -> Zapora systemu Windows z zaawansowanymi zabezpieczeniami, reguły ruchu przychodzącego. Utwórz nową regułę „Zezwalaj na port, TCP, 8000, Wszystkie profile

Jednak z jakiegoś powodu nadal nie mogę uzyskać dostępu do strony internetowej (zrobiłem dokładnie te same kroki dla serwera Webrick (na tej samej maszynie) i wszystko działało idealnie) ... jakieś pomysły?

abbood
źródło
1
Bez znajomości Laravela lub artisan, domyślam się, że jest to localhostdomyślnie związane i musisz go skonfigurować tak, aby obsługiwał nielokalne żądania. Przejrzyj dokumenty systemu, aby to sprawdzić.
Sven
@SvW jest poprawne.
ceejayoz

Odpowiedzi:

29

Aby to działało poza localhost, zrób php artisan serve --host 0.0.0.0

Jeśli chcesz go do pracy bez podania portu w przeglądarce php artisan serve --host 0.0.0.0 --port 80. sudobędzie prawdopodobnie wymagane.

Uwaga: nigdy niephp artisan serve należy go używać do produkcji. Jest przeznaczony wyłącznie do tworzenia i demonstracji i nie będzie w stanie obsłużyć ruchu większego niż jedna lub dwie osoby.

ceejayoz
źródło
ok, brzmi dobrze ... w rzeczy samej, korzystając z twoich instrukcji, byłem w stanie wyświetlić go z WWW (tj. mydomain.com:8080) .. jednak wciąż zastanawiam się, dlaczego nie mogę zmusić apache do serwowania go na WWW? to jest mój konkretny scenariusz: uruchamianie artisan servesprawia, że ​​działa dobrze .. ale potem włączenie apache daje mi page not foundbłędy .. stworzyłem przykładowy projekt laravel przy użyciu kompozytora .. i działało dobrze nawet na apache .. jednak ten projekt i faktycznie skopiowane z komputera innego programisty. Zakładam, że może to mieć coś wspólnego z uprawnieniami do plików?
abbood
2
Musisz poprawnie skonfigurować Apache, aby wskazywał właściwy katalog. Zobacz laravel.com/docs/installation#pretty-urls .
ceejayoz
ok .. zmieniłem AllowOverridena Allw httpd.confpliku w definicji DocumentRootzgodnie z instrukcją tutaj .. ale to nie działało .. na stronie laravel mówi, że jeśli to nie działa spróbuj Options +FollowSymLinks RewriteEngine On .... ale nie jestem pewien gdzie umieścić te rzeczy? czy powinni również przejść do tego samego pliku httpd.conf?
abbood
Czy Twój DocumentRoot wskazuje na katalog publiczny?
ceejayoz
1
@colinhoernig Pamiętaj tylko, aby nigdy nie używać go do produkcji.
ceejayoz