166
Otros / Simple servidor HTTP con python o php
« en: Marzo 27, 2014, 07:42:23 pm »
Buenas, hacía mucho tiempo que no abría ningún post pero hace nada he visto una cosa que me parece interesante de compartir ya que es interesante, curioso y puede resultar bastante útil.
Como habréis visto en el topic se trata de un servidor HTTP en python, muy simple pero rápido de abrir...
Empecemos probando lo básico:
Y se abrirá un servidor HTTP en el directorio dónde estés, por defecto el puerto es el 8000 pero se puede cambiar de la siguiente forma:
Y nos saldrá lo siguiente
Ahora tendremos nuestro servidor HTTP corriendo en el puerto 1337, lógicamente no soporta PHP pero yo tenía la esperanza de que soportara python, pero me llevé una decepción
Así que solo soporta html, css, js y otras tecnologías de lado cliente... Así que ahora mucho os preguntaréis, qué tiene de bueno?
Bueno lo bueno es que al ser una librería de python pueden hacerse muchos scripts interactuando con él y así intentar conseguir personalizarlo al máximo, sólo deja volar tu imaginación
Dejo algunos ejemplos:
Más ejemplos:
Documentación básica:
Pero que pasa si queremos un servidor que soporte php? Pues aquí llega el PHP development server, empecemos, como antes nos colocamos en la ruta que queremos que sea el / del server...
Bien ahora ejecutamos el comando, su sintaxis es muy simple: php -S 127.0.0.1:puerto, así que nos quedará algo así (siguiendo con el puerto 1337 como buenos H4X0R2 que somos xD)
Y saldrá algo parecido a:
Y ya tenemos nuestro server de pruebas, que como era de esperar soporta php
Para aquellos que tengan una versión inferior de php 5.4 y sean tan vagos que no puedan hacer un upgrade, o para aquellos que simplemente quieren mirar un code php que te abre un server HTTP, aquí tenéis uno: https://github.com/lox/phpup (aviso que no es el code del php -S)
Conclusiones? Pues son unas muy buenas herramientas para hacer cosas rápidas y con el de python se pueden llegar a lograr cosas muy interesantes. Cada uno tiene sus ventajas e inconvenientes así que ya sabréis cual os conviene en cada momento, lógicamente esto no podrá sustituir a los servidores web tradicionales, pero para hacer cosas rápidas y te da pereza correr apache o experimentar un rato está bien, espero que a alguien le haya servido jaja
Salu3
Como habréis visto en el topic se trata de un servidor HTTP en python, muy simple pero rápido de abrir...
Empecemos probando lo básico:
Código: [Seleccionar]
python -m SimpleHTTPServer
Y se abrirá un servidor HTTP en el directorio dónde estés, por defecto el puerto es el 8000 pero se puede cambiar de la siguiente forma:
Código: [Seleccionar]
python -m SimpleHTTPServer 1337
Y nos saldrá lo siguiente
Código: [Seleccionar]
Serving HTTP on 0.0.0.0 port 1337 ...
Ahora tendremos nuestro servidor HTTP corriendo en el puerto 1337, lógicamente no soporta PHP pero yo tenía la esperanza de que soportara python, pero me llevé una decepción
Así que solo soporta html, css, js y otras tecnologías de lado cliente... Así que ahora mucho os preguntaréis, qué tiene de bueno?
Bueno lo bueno es que al ser una librería de python pueden hacerse muchos scripts interactuando con él y así intentar conseguir personalizarlo al máximo, sólo deja volar tu imaginación
Dejo algunos ejemplos:
Código: [Seleccionar]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Simplemente corre el servidor
import sys, baseHTTPServer, simpleHTTPServer
servidor = baseHTTPServer.HTTPServer
handler = simpleHTTPRequestHandler
p_version = "HTTP/1.1"
if sys.argv[1]:
if sys.argv[1] == "-h":
print "Uso:"
print "cd Directorio"
print "./script.py puerto"
else:
puerto = int(sys.argv[1])
else:
puerto = 8000
direccion = ("127.0.0.1", puerto)
handler.protocol_version = p_version
http = servidor(direccion, handler)
http.serve_forever()
Más ejemplos:
Documentación básica:
- http://docs.python.org/2/library/basehttpserver.html#module-BaseHTTPServer
- http://docs.python.org/2/library/simplehttpserver.html
Pero que pasa si queremos un servidor que soporte php? Pues aquí llega el PHP development server, empecemos, como antes nos colocamos en la ruta que queremos que sea el / del server...
Código: [Seleccionar]
quim@GAZPACHO$ cd /home/quim/phpHTTP
Bien ahora ejecutamos el comando, su sintaxis es muy simple: php -S 127.0.0.1:puerto, así que nos quedará algo así (siguiendo con el puerto 1337 como buenos H4X0R2 que somos xD)
Código: [Seleccionar]
php -S 127.0.0.1:1337
Y saldrá algo parecido a:
Código: [Seleccionar]
PHP 5.4.4-14+deb7u7 Development Server started at Thu Mar 27 19:13:58 2014
Listening on 127.0.0.1:1337
Document root is /home/quim/phpHTTP
Press Ctrl-C to quit.
Y ya tenemos nuestro server de pruebas, que como era de esperar soporta php
Para aquellos que tengan una versión inferior de php 5.4 y sean tan vagos que no puedan hacer un upgrade, o para aquellos que simplemente quieren mirar un code php que te abre un server HTTP, aquí tenéis uno: https://github.com/lox/phpup (aviso que no es el code del php -S)
Conclusiones? Pues son unas muy buenas herramientas para hacer cosas rápidas y con el de python se pueden llegar a lograr cosas muy interesantes. Cada uno tiene sus ventajas e inconvenientes así que ya sabréis cual os conviene en cada momento, lógicamente esto no podrá sustituir a los servidores web tradicionales, pero para hacer cosas rápidas y te da pereza correr apache o experimentar un rato está bien, espero que a alguien le haya servido jaja
Salu3