¿Cómo iniciar fácilmente un servidor web en cualquier carpeta?

115

Estoy buscando una forma relativamente sencilla de iniciar un servidor web con raíz de documentos en cualquier carpeta que especifique (o mejor aún, donde estoy iniciando).

A menudo pruebo cosas nuevas como los frameworks JS o algo así en una nueva carpeta en algún lugar aquí:

/home/alexander/code/angularjs/

Entonces sería conveniente ir a este directorio y escribir algo como:

start-webserver-here 

para que un servidor web comience a escuchar en el puerto 80 y sirva este directorio, y pueda probar lo que sea que esté trabajando.

He instalado XAMPP pero parece que es un apache básico con una raíz de documento que tendría que cambiar, incluso con privilegios de root, junto con la concesión de permisos para cada carpeta, etc.

hay una manera mas facil?

Alexander Rechsteiner
fuente
Alguien ha compilado una gran lista de líneas para lograr esto: gist.github.com/willurd/5720255
Abhinav Bhatia

Respuestas:

174

Utilizar

python2 -m SimpleHTTPServer 80

o

python3 -m http.server 80

para iniciar un servidor HTTP simple.

Reemplace 80con otro número si desea que escuche en un puerto diferente. Para puertos <1024 necesita ejecutarse con privilegios de root.

Florian Diesch
fuente
1
¡Esto es exactamente lo que he estado buscando! Danke!
Alexander Rechsteiner
1
¿Puedes ejecutar esto en paralelo a Apache? En un puerto diferente, por supuesto (aunque me gustaría que me volviera loco diciendo que pueden usar los mismos puertos).
dibs
3
@dibs Sí, ambos pueden ejecutarse en paralelo. Pero no, no en el mismo puerto.
Dan
11
El equivalente a Python 3.x de esto espython3 -m http.server
Stefano Palazzo
1
es por eso que me encanta tanto stackoverflow. Ven a buscar el problema exacto para el que quería encontrar una idea ... ejecutar angularjs desde un servidor web. Muchas gracias Florian Deisch
SK176H
24

También me gusta usar PHP para este propósito, ya que me permite ejecutar cosas como WordPress sobre la marcha y desarrollar temas más fácilmente (sin embargo, todavía necesita MySQL):

php -S 0.0.0.0:8000

En el mismo script que inicia esto, también inicio guard , que actualiza automáticamente el navegador en el cambio de archivo.

metakermit
fuente
2
Tenga en cuenta que la función del servidor incorporado se agregó en 5.4.0
sierrasdetandil
Sí, necesitas una de las versiones más nuevas. La versión en los repositorios 13.10 si lo hace sudo apt-get install php5es 5.5.3, por lo que debería estar bien.
metakermit
Perfecto ! Justo lo que estaba buscando !
Prakash Raman
17

Si eres más rubí, la gema de servir es genial

serve

o para un puerto diferente:

serve 9000

instalar con gem install serve

will-ob
fuente
Esto funciona bien, pero requiere rubí> = 1.9.3
Valerio Schiavoni
Sí, pero también 1.9.3 es eol . Los parches de seguridad ya no son compatibles. Recomendaría rvm para administrar rubíes heredados. No deberían ser los valores predeterminados de su sistema
will-ob
13

Esto también es posible en Ruby sin instalar una gema.

ruby -run -e httpd . -p5000

Steelsouls
fuente
No funciono para mi. ¿Qué versión de ruby ​​probaste?
Valerio Schiavoni
Funciona como se anuncia con Ruby 2.5.1.
Raphael
6

Solo use http-server, es un servidor de línea de comando de configuración cero.

La forma más fácil de instalarlo es a través de npm:

sudo npm install http-server -g

Uso:

http-server [path] [options]

[path]el valor predeterminado es ./publicsi la carpeta existe, y de lo ./contrario.

Para ver su servidor en acción, visite http: // localhost: 8080 . Use la -popción para establecer un puerto diferente.

Para más opciones visite: https://www.npmjs.com/package/http-server .

Luis Ma
fuente
La única razón para no usar esto es que requiere rpm que no están instaladas de forma nativa. Las otras soluciones que mencionan ruby ​​y python están preinstaladas en casi todos los sistemas operativos, por lo que no hay un requisito previo asociado con la instalación del comando para ejecutar el servidor.
jamescampbell
3

Como hay angularjs en el nombre de su carpeta, parece que es una aplicación angular js. En tal caso, asegúrese de visitar yeoman .

Para citar su sitio

Yeoman 1.0 es más que una simple herramienta. Es un flujo de trabajo; Una colección de herramientas y mejores prácticas que trabajan en armonía para hacer que el desarrollo para la web sea aún mejor.

Una de las muchas otras cosas es el gruntservidor incluido .

mreq
fuente