Come avviare facilmente un server web in qualsiasi cartella?


115

Sto cercando un modo relativamente indolore per avviare un server Web con root del documento in qualsiasi cartella che specifico (o meglio ancora, dove sto avviando).

Provo spesso cose nuove come framework JS o giù di lì in una nuova cartella da qualche parte qui:

/home/alexander/code/angularjs/

Sarebbe quindi conveniente andare in questa directory e digitare qualcosa del tipo:

start-webserver-here 

in modo che un server Web inizi ad ascoltare sulla porta 80 e serva questa directory, e posso provare qualunque cosa stia lavorando.

Ho installato XAMPP ma sembra che sia un apache di base con un root del documento che dovrei cambiare, anche con i privilegi di root, insieme alla concessione delle autorizzazioni per ogni cartella ecc.

C'è un modo più semplice?


Qualcuno ha compilato un grande elenco di una delle linee per raggiungere questo obiettivo: gist.github.com/willurd/5720255
Abhinav Bhatia

Risposte:


174

Uso

python2 -m SimpleHTTPServer 80

o

python3 -m http.server 80

per avviare un semplice server HTTP.

Sostituisci 80con un altro numero se desideri che ascolti su una porta diversa. Per le porte <1024 deve essere eseguito con i privilegi di root.


1
Questo è esattamente quello che stavo cercando! Danke!
Alexander Rechsteiner,

1
Puoi eseguirlo in parallelo ad Apache? Ovviamente su un'altra porta (anche se ti darei il benvenuto per farmi saltare la testa dicendomi che possono usare le stesse porte).
sal

3
@dibs Sì, possono funzionare entrambi in parallelo. Ma no, non sulla stessa porta.
Dan,

11
L'equivalente in pitone 3.x di questo èpython3 -m http.server
Stefano Palazzo

1
ecco perché adoro StackOverflow così tanto. Sono venuto a cercare qui il problema esatto che volevo trovare un'anima per ... eseguire angularjs da un server web. Grazie mille Florian Deisch
SK176H,

24

Mi piace anche usare PHP a questo scopo, in quanto mi permette di eseguire cose come WordPress al volo e sviluppare temi più facilmente (hai comunque bisogno di MySQL):

php -S 0.0.0.0:8000

Nello stesso script che inizia questo avvio anche guard , che aggiorna automaticamente il browser al cambio di file.


2
Si noti che la funzionalità del server integrato è stata aggiunta in 5.4.0
sierrasdetandil il

Sì, è necessaria una delle versioni più recenti. La versione nel repository 13.10 se lo fai sudo apt-get install php5è 5.5.3, quindi dovresti essere OK.
metakermit,

Perfetto ! Proprio quello che stavo cercando !
Prakash Raman,

17

se sei più orientato al rubino, la gemma del servizio è ottima

serve

o per porta diversa:

serve 9000

installare con gem install serve


Funziona bene, ma richiede rubino> = 1.9.3
Valerio Schiavoni,

Sì, ma anche 1.9.3 è eol . Le patch di sicurezza non sono più supportate. Consiglierei rvm per la gestione di rubini legacy. Non dovrebbero essere i valori predefiniti del tuo sistema
will-ob,

13

Questo è possibile anche in Ruby senza installare una gemma.

ruby -run -e httpd . -p5000


Non ha funzionato per me. Quale versione di ruby ​​hai provato?
Valerio Schiavoni,

Funziona come pubblicizzato con Ruby 2.5.1.
Raffaello,

6

Basta usare http-server, è un server della riga di comando a configurazione zero.

Il modo più semplice per installarlo è tramite npm:

sudo npm install http-server -g

Uso:

http-server [path] [options]

[path]il valore predefinito è ./publicse la cartella esiste e in caso ./contrario.

Per vedere il tuo server in azione, visita http: // localhost: 8080 . Utilizzare l' -popzione per impostare una porta diversa.

Per ulteriori opzioni, visitare: https://www.npmjs.com/package/http-server .


L'unico motivo per non usarlo è che richiede rpm che non è installato in modo nativo. Le altre soluzioni che menzionano ruby ​​e python sono preinstallate su quasi tutti i sistemi operativi, quindi non esiste un prerequisito associato all'installazione del comando per eseguire il server.
Jamescampbell,

3

Dal momento che c'è angularjs nel nome della tua cartella, sembra che sia un'app js angolare. In tal caso, assicurati di controllare Yeoman .

Per citare il suo sito

Yeoman 1.0 non è solo uno strumento. È un flusso di lavoro; una raccolta di strumenti e buone pratiche che lavorano in armonia per migliorare ulteriormente lo sviluppo del Web.

Una delle tante altre cose è il gruntserver in bundle .


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.