Error al correr cgi en python

vicente villaveces jvicentevilla en yahoo.es
Mie Nov 8 19:49:42 CET 2006


Saludos.
      Agradecimiento al Sr. aNgel rEsendiz g.
 En cuanto a la aclaratoria que me haces sobre la configuración es muy buena, ya que lo orienta a uno, sobre la forma de hacer las modificaciones en los archivos de configuración del servidor apache2. 
 
     Con respecto a las modificaciones que hice en el archivo httpd.conf, las coloque como lineas de comentarios agregándole la almohadilla "#". Procediendo luego a editar el archivo /etc/apache2/sites-enabled/000-default, y para sorpresa me conseguí con que las modificaciones ya estaban, es decir que vienen con la configuración que trae e servidor apache2.
 
     En cuanto a las dudas que tiene sobre el funcionamiento del programa que me envió, le digo que usted tiene la razón, el programa se ejecuta en el navegador pero no hace lo que debe hacer con respecto a la función para la cual fue diseñado, les pido disculpas porque honestamente  aún no tengo los conocimientos para depurarlo espero tenerlos pronto, he estado investigando en google y recién ahora en tres libros que he comprado por Amazon, estos libros apenas he tenido tiempo de ojearlos, a pesar de que son en inglés y no me es tan fácil comprenderlos, pero considero buenos libros, estos libros son; Internet Programming With Python de Aaron Waters, Programming Python de Mark Lutz tercera edición  y Python Cookbook de Alex Martelli y David Ascher.
 
     Como compensaciòn incluyo el consabido programa hola mundo, el cual se ejecuta después de haberle dado  el respectivo permiso de ejecución desde consola como usuario root y ubicado en /usr/lib/cgi-bin con el comando: chmod 755 hello.py  Se ejecuta desde el navegador con: http://localhost/cgi-bin/hello.py  El codigo es el siguiente:
 
 #!/usr/bin/python
 print "Content-type: text/html"
 print
 print "Hello World"
 
 
 Gracias.
 
 
 
 --- Mensaje original ----
 De: aNgel rEsendiz g. <sonajadiabolica en gmail.com>
Para: La lista de python en castellano <python-es en aditel.org>
Enviado: lunes, 6 de noviembre, 2006 13:05:02
Asunto: Re: [Python-es] Error al correr cgi en python

Que tal.

   Solo alcarar algunas cosas. El archivo /etc/apache2/httpd.conf ya
no se utiliza en apache2, seguramente leiste algún manual de versiones
anteriores, antes *TODO* se metia en el archivo httpd.conf, y no habia
tantos directorios en /etc/apache2/ pero para cambiar cualquier cosa,
tenias que abrir ese monstruo de archivo de configuración, así que
ahora se han separado algunas cosas en sus propios archivos y
directorios.

    En tu caso, la configuración que pusiste en httpd.conf, es la
configuración de directorios, alias, servidores virtuales, etc. de
apache2, y para esa configuración ahora se utiliza el directorio
/etc/apache2/sites-available , que es el directorio que contiene los
archivos de configuración de directorios, y el directorio
/etc/apache2/sites-enabled , que contiene enlaces a los archivos de
sites-available que van a estar funcionando, es decir, en
sites-available estan todas las posibles configuraciones
(configuraciones disponibles), y en sites-enabled, enlaces a los
archivos de sites-available que SI queremos que funcionen
(configuraciones activas). Lo mismo sucede con mods-available y
mods-enabled.

    A su vez, todos esos archivos son llamados desde apache2.conf, que
es ahora el archivo de configuración principal, desde él se llama a
sites-enabled, mods, enabled, ports, y a httpd.conf (para mantener
cierta compatibilidad, aunque es mejor utilizar los archivos de la
nueva manera)entre otros. Las lineas que llaman a esos archivos
inician con "Include" en apache2.conf.

    En resumen, te recomiendo que la configuración que utilizaste en
httpd.conf, la apliques en sites-enabled/000-default.

    Y aún tengo dudas en que funcione bien el script que te hice con
las modificaciones, prueba que funcione correctamente (que al
seleccionar un color y presionar un boton, vuelva a aparecer la misma
pantalla con el color de texto que seleccionaste).

Saludos.

On 11/6/06, vicente villaveces <jvicentevilla en yahoo.es> wrote:
> 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
>


-- 
aNgel rEsendiz.!
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es







		
______________________________________________ 
LLama Gratis a cualquier PC del Mundo. 
Llamadas a fijos y móviles desde 1 céntimo por minuto. 
http://es.voice.yahoo.com




Más información sobre la lista de distribución Python-es