¿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?


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.


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.


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


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


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 .


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 .


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.