Error al correr cgi en python
Andrés Ignacio Martínez Soto
al084070 en alumail.uji.es
Lun Nov 6 19:05:31 CET 2006
Hola, tu problema es sencillo, y a mi me dio muchos dolores de cabeza:
print "Content-type: text/html\n\n"
Son 2 '\n' o creo que '\r\n' también funciona.
De todas maneras considera ésta función que te puedes hacer tu mismo:
def headers (MIME):
return str("Content-type: "+str(MIME))
Saludos
pd: Prueba de que los CGI de Python funcionan... mi blog ->
http://www.elpiso.info/martine o el de un amigo,
http://www.elpiso.info/blog
vicente villaveces escribió:
Saludos.
Agradecimiento a el Sr. aNgel rEsendiz g. Para el momento de
recibir el correo estaba haciendo algunas pruebas agregando algunas
directivas al archivo http.conf el cual está ubicado en mi equipo en
/etc/apache2
Siguiendo sus indicaciones copié y pegué el archivo color.py en:
/usr/lib/cgi-bin lo ejecutè desde el naveador con:
http://locallhost/cgi-bin/color.py y el navegador presentò el mensaje:
Internal Server error Por lo que abrì el archivo
/var/log/apache2/error.log para leer las causas del error, las
entradas correspondientes al error segùn la hora de ocurrencia son:
Premature end of script headers: color.py
File not existe: /var/www/faviscom.Ico.
Editè el archivo color.py y busquè alguna informaciòn sobre codigo html
y pude hacer algunas modificaciones, finalmente el archivo quedò asi:
#!/usr/bin/python
import cgi
print "Content-Type: text/html\n"
form=cgi.FieldStorage()
color=form.getvalue('color')
print '''<html><header><title>Seleccionar color</title></header><body>
<form action="/cgi-bin/color.py" method="post">
<input type="radio" name="color" value="black" checked>Negro<br>
<input type="radio" name="color" value="red" checked>Rojo<br>
<input type="radio" name="color" value="green" >green<br>
<input type="submit" value="escojer">
</form>'''
if color:
print '''<font> color=%s>"El color de este texto es: %s"
</font>%(color,color)
</body></html>'''
Despuès de que corriò el cgi fuì eliminando una a una las
directivas agregadas al archivo: http.cof hasta producir el error
nuevamente y lograr asì determinar cual directa era la requerida, el
archivo quedò asi:
# This is here for backwards compatability reasons and to support
# installing 3rd party modules directly via apxs2, rather than
# through the /etc/apache2/mods-{available,enabled} mechanism.
#
#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so
LoadModule python_module /usr/lib/apache2/modules/mod_python.so
<Directory /usr/lib/cgi-bin>
Options +ExecCGI
</Directory>
Para finalizar nuevamente mi agradecimiento al señor aNgel rEsendiz
g. , a la administraciòn de la lista y todos los usuarios listeros por
permitir que se propague el conocimiento.
"aNgel rEsendiz g." <sonajadiabolica en gmail.com> escribió: Intenta
nuevamente, pero con http://localhost/cgi-bin/color.py.
Otra cosa es que probablemente cambiaste algo en la configuración de
apache que no recuerdas.
Escribe en la terminal "ps ax", y busca una linea que sea algo así:
/usr/sbin/apache2
si no la encuentras, escribe "sudo /etc/init.d/apache2 start" y nos
dices que mensaje obtienes.
De hecho, si obtienes algún mensaje de error, para facilitar las
cosas, puedes hacer esto:
sudo apt-get remove --purge apache2
sudo rm -rf /etc/apache2/
sudo apt-get install apache2
Despues vuelve a intentar con http://localhost/cgi-bin/color.py
Saludos
---------------------------------
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es