Jak łatwo uruchomić serwer WWW w dowolnym folderze?

115

Szukam względnie bezbolesnego sposobu uruchomienia serwera WWW z korzeniem dokumentu w dowolnym określonym przeze mnie folderze (lub jeszcze lepiej, gdzie uruchamiam).

Często wypróbowuję nowe rzeczy, takie jak frameworki JS lub coś takiego w nowym folderze gdzieś tutaj:

/home/alexander/code/angularjs/

Byłoby wtedy wygodne po prostu wejść do tego katalogu i wpisać coś takiego:

start-webserver-here 

tak aby serwer WWW zaczął nasłuchiwać na porcie 80 i obsługiwał ten katalog, a ja mogę wypróbować wszystko, nad czym pracuję.

Zainstalowałem XAMPP, ale wygląda na to, że to podstawowy apache z korzeniem dokumentu, który musiałbym zmienić, nawet z uprawnieniami roota, wraz z przyznawaniem uprawnień do każdego folderu itp.

Czy istnieje prostszy sposób?

Alexander Rechsteiner
źródło
Ktoś opracował dużą listę jednego linera,
Abhinav Bhatia

Odpowiedzi:

174

Posługiwać się

python2 -m SimpleHTTPServer 80

lub

python3 -m http.server 80

aby uruchomić prosty serwer HTTP.

Zamień na 80inny numer, jeśli chcesz, aby nasłuchiwał na innym porcie. W przypadku portów <1024 musi działać z uprawnieniami administratora.

Florian Diesch
źródło
1
Właśnie tego szukałem! Danke!
Alexander Rechsteiner,
1
Czy możesz uruchomić to równolegle z Apache? Oczywiście na innym porcie (choć chętnie bym cię zaskoczył, mówiąc mi, że mogą korzystać z tych samych portów).
dibs
3
@dibs Tak, oba mogą działać równolegle. Ale nie, nie na tym samym porcie.
Dan
11
Odpowiednikiem tego python 3.x jestpython3 -m http.server
Stefano Palazzo
1
dlatego tak bardzo uwielbiam nakładanie stosów. Przyszedłem tutaj, aby znaleźć dokładny problem, który chciałem znaleźć dla ... duszy z serwera web. Wielkie dzięki Florian Deisch
SK176H,
24

Lubię też używać PHP do tego celu, ponieważ pozwala mi na uruchamianie rzeczy takich jak WordPress w locie i łatwiejsze tworzenie motywów (wciąż potrzebujesz MySQL):

php -S 0.0.0.0:8000

W tym samym skrypcie, który to uruchamia, uruchamiam także straż , która automatycznie odświeża przeglądarkę po zmianie pliku.

metakermit
źródło
2
Zwróć uwagę, że wbudowana funkcja serwera została dodana w 5.4.0
sierrasdetandil
Tak, potrzebujesz jednej z nowszych wersji. Wersja w repozytorium 13.10, jeśli tak, sudo apt-get install php5to 5.5.3, więc powinieneś być OK.
metakermit,
Doskonały ! Właśnie tego szukałem!
Prakash Raman
17

jeśli jesteś bardziej rubinowy, klejnot do serwowania jest świetny

serve

lub dla innego portu:

serve 9000

zainstaluj za pomocą gem install serve

will-ob
źródło
Działa to dobrze, ale wymaga ruby> = 1.9.3
Valerio Schiavoni,
Tak, ale także 1.9.3 to eol . Łaty bezpieczeństwa nie są już importowane. Polecam RVM za zarządzanie starszych rubiny. Nie powinny być domyślnymi ustawieniami twojego systemu
będzie
13

Jest to również możliwe w Ruby bez instalowania klejnotu.

ruby -run -e httpd . -p5000

Steelsouls
źródło
Nie działało dla mnie. Którą wersję rubinu próbowałeś?
Valerio Schiavoni,
Działa zgodnie z reklamą w Ruby 2.5.1.
Raphael
6

Wystarczy użyć http-server, to serwer linii poleceń o zerowej konfiguracji.

Najłatwiejszym sposobem instalacji jest npm:

sudo npm install http-server -g

Stosowanie:

http-server [path] [options]

[path]domyślnie jest ustawiony, ./publicjeśli folder istnieje, i ./inaczej.

Aby zobaczyć działanie serwera, odwiedź http: // localhost: 8080 . Użyj -popcji, aby ustawić inny port.

Więcej opcji na stronie: https://www.npmjs.com/package/http-server .

Luis Ma
źródło
Jedynym powodem, aby tego nie używać, jest to, że wymaga rpm, który nie jest zainstalowany natywnie. Inne rozwiązania, które wspominają o Ruby i Pythonie, są wstępnie zainstalowane w prawie każdym systemie operacyjnym, więc nie ma żadnych wymagań wstępnych związanych z instalacją polecenia uruchomienia serwera.
jamescampbell
3

Ponieważ w nazwie twojego folderu znajduje się angularjs, wygląda na to, że jest to aplikacja angular js. W takim przypadku koniecznie sprawdź sprzedawcę .

Cytując to strona

Yeoman 1.0 to coś więcej niż narzędzie. To przepływ pracy; zbiór narzędzi i najlepszych praktyk działających w harmonii, aby programowanie w Internecie było jeszcze lepsze.

Jedną z wielu innych rzeczy jest dołączony gruntserwer.

mreq
źródło