2012-05-01 20 views
21

Cuando ejecuto python -m SimpleHTTPServer 8000 o python -m CGIHTTPServer 8000 en mi shell estoy alojando el contenido de mi directorio actual en Internet.Cómo alojar la secuencia de comandos python cgi con `python -m SimpleHTTPServer 8000` o` python -m CGIHTTPServer 8000`?

me gustaría hacer el siguiente trabajo cgi_script.py correctamente usando el comando anterior en la línea de comandos cuando hojeo a 192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python 
print "Content-Type: text/html" 
print 
print """\ 
<html> 
<body> 
<h2>Hello World!</h2> 
</body> 
</html> 
""" 

Pero este guión es exhibidas, literalmente, y no sólo el "Hello World! " parte. Por cierto, cambié los permisos de archivo a 755 para cgi_script.py así como para la carpeta desde la que estoy alojado.

+0

Para quienes prueben esto en mac o linux, asegúrese de tener permisos que permitan ejecutar el archivo. En otras palabras: 'chmod + x cgi-bin/cgi_script.py' – greggles

Respuesta

32

Probar con python -m CGIHTTPServer 8000.

Tenga en cuenta que debe mover la secuencia de comandos a un directorio cgi-bin o htbin para que pueda ejecutarse.

+0

Esto no cambia nada desafortunadamente. (No entiendo por qué no). – Bentley4

+0

@ Bentley4 - Consulte la respuesta actualizada sobre el directorio CGI. – rodrigo

+0

Intenté con el directorio llamado cgi_bin, htbin e incluso cgi-bin. Ninguno funcionó apropiadamente. – Bentley4

5

SO no me permite comentar, así que lo agrego como una respuesta aparte, además de rodrigo's.

Puede usar otro parámetro cgi_directories cuyo valor predeterminado es ['/cgi-bin', '/htbin']. Más información here

0

Cuando me encontré con este problema, encontré que dependiendo del directorio en el que se encuentre cuando ejecuta el comando python -m CGIHTTPServer 8000 se obtienen resultados diferentes. Al intentar ejecutar el comando mientras estaba en el directorio cgi-bin, el navegador continuó devolviendo el código del script en bruto. una vez que copié un nivel más alto y ejecuté el comando python -m CGIHTTPServer 8000 nuevamente, mi script comenzó a ejecutarse.

0

@ Bentley4 -ifyou todavía no son capaces de hacer, intente importar cgi.

# C: \ Python34 \ python.exe -u importación cgi de impresión ("Content-type: text/html")

HTH

0

en python3 la línea de comandos es simplemente

python -http.server --cgi 8000 
+1

y sí: la secuencia de comandos debe residir en '/ cgi-bin' – AchimG

+3

su comando falla con el error 'Opción desconocida: -p' que tiene sentido porque le está dando' http.server' como si fuera un conjunto de cortos opciones. No funciona así. En su lugar, debería ser 'python -m http.server --cgi 8000' – josch

Cuestiones relacionadas