[Python-es] Configurar Apache para Python

Juan M. Puertas soft.sirius en gmail.com
Jue Feb 19 18:40:15 CET 2015


Hola amigos.
Acabo de encontrar la solución.
Lo que cambia de Apache 2.2 a Apache 2.4 es que hay que incluir lo
siguiente en el archivo "apache2.conf":

LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so

Ahora todo funciona correctamente.
Espero que esto ayude a quien lo necesite. :-)
Saludos.

El 14 de febrero de 2015, 13:44, Juan M. Puertas <soft.sirius en gmail.com>
escribió:

> Hola.
> Acabo de instalar apache2.2 en lugar de la versión 2.4, que viene en el
> repositorio de Linux Mint. Ahora todo funciona perfectamente.
> Tendré que leer las novedades de apache 2.4.
> Gracias por vuestra ayuda. :-)
>
> El 14 de febrero de 2015, 12:54, Juan M. Puertas <soft.sirius en gmail.com>
> escribió:
>
>
>> *¿Pero tienes la directiva <Directory> en .htaccess o no? (En otro
>> mensaje lo tienes puesto)*
>> No tengo la directiva <Directory>, la puse para una prueba, pero cuando
>> funcionaba bien no la tenía, ni la tengo ahora.
>> Ya digo que el programa comienza así:
>> #!/usr/bin/env python
>> import cgitb;cgitb.enable()
>> Ya he hecho la prueba de poner "#!/usr/bin/python2.7" y sigue fallando.
>> Claro, ahora que caigo; es una versión compatible con python2 y python3. :-)
>> Para ir descartando posibilidades, voy a instalar "Apache 2.2" y seguir
>> las instrucciones que tenía cuando todo funcionaba bien.
>> Muchas gracias por todo, Chema. :-)
>> Os mantendré informados.
>>
>> El 14 de febrero de 2015, 12:06, Chema Cortes <pych3m4 en gmail.com>
>> escribió:
>>
>> El 13 de febrero de 2015, 23:37, Juan M. Puertas <soft.sirius en gmail.com>
>>> escribió:
>>>
>>>> Muchas gracias Chema :-) Ahora hace algo más raro.
>>>> He dejado el ".htaccess" así:
>>>>
>>>> DirectoryIndex index.html
>>>> Options ExecCGI
>>>> AddHandler cgi-script .py .cgi
>>>> AddType text/html .py .cgi
>>>>
>>>> Por que "error.log" indica que en este archivo no se permite
>>>> "<Directory ...
>>>> He puesto "AllowOverride All" en el sitio adecuado de "apache2.conf", y
>>>> Firefox me lanza una mezcla del código fuente y de la parte visual de la
>>>> página web. :-?
>>>> Chromium sigue mostrando sólo el código fuente.
>>>>
>>>>
>>> ¿Pero tienes la directiva <Directory> en .htaccess o no? (En otro
>>> mensaje lo tienes puesto)
>>>
>>> No se puede cambiar esta directiva desde el .htaccess, ni en apache 2.4
>>> ni en 2.2
>>>
>>> ¿Tienes bien puesto el hashtag, con la ruta del ejecutable python, en el
>>> cgi?
>>>
>>> Prueba a ejecutarlo desde la línea de comandos, como si fuera un script
>>> normal. (eg: ./mycgi.py)
>>>
>>>
>>>
>>>> ¿Puede deberse a que intenta lanzar python3.4 en lugar de python 2.7?.
>>>> Ya sabemos que ha cambiado la forma de hacer print.
>>>>
>>>
>>> python 2.7 está más próximo a python3 que a python 2.4. No creo que sea
>>> un problema del print.
>>>
>>>
>>>> ¿Puede deberse al cambio entre apache 2.2 a apache 2.4?
>>>>
>>>
>>>
>>>>  Seguiré investigando...
>>>>
>>>
>>>
>>>>
>>>> El 13 de febrero de 2015, 21:29, Chema Cortes <pych3m4 en gmail.com>
>>>> escribió:
>>>>
>>>> Holas,
>>>>>
>>>>> En la configuración principal de apache2.conf tienes un "AllowOverride
>>>>> None". Si no lo cambias, no tendrá en cuenta nada de lo que pongas en
>>>>> ficheros ".htaccess"
>>>>>
>>>>>
>>>>>
>>>>> El 13 de febrero de 2015, 17:42, Juan M. Puertas <
>>>>> soft.sirius en gmail.com> escribió:
>>>>>
>>>>> Pepe:
>>>>>>  He hecho la prueba de lo que me dices así:
>>>>>> "$ sudo a2enmod python"
>>>>>> Y me devuelve:
>>>>>> "ERROR: Module python does not exist!"
>>>>>> Luego lo he intentado así:
>>>>>> "$ sudo a2enmod cgi"
>>>>>> Luego reinicio apache.
>>>>>> Lo que sucede ahora es que no encuentra el programa.py (NOT FOUND)
>>>>>>
>>>>>> Carlos:
>>>>>>  Con Firefox pregunta si abrir o guardar el archivo programa.py. Con
>>>>>> Chromium abre el código fuente en el mismo navegador.
>>>>>> Ya tenía el print 'Content-type: text/html'
>>>>>> El error.log de apache parece no indicar error alguno:
>>>>>>
>>>>>> [Fri Feb 13 17:07:10.531526 2015] [mpm_event:notice] [pid 5700:tid
>>>>>> 3074771584] AH00491: caught SIGTERM, shutting down
>>>>>> [Fri Feb 13 17:07:11.650739 2015] [mpm_event:notice] [pid 5815:tid
>>>>>> 3074701952] AH00489: Apache/2.4.7 (Ubuntu) configured -- resuming normal
>>>>>> operations
>>>>>> [Fri Feb 13 17:07:11.651031 2015] [core:notice] [pid 5815:tid
>>>>>> 3074701952] AH00094: Command line: '/usr/sbin/apache2'
>>>>>>
>>>>>> Carlos y Alexandro:
>>>>>> Si no lo consigo, buscaré cómo convertir un simple cgi en wsgi.
>>>>>>
>>>>>> Muchas gracias a todos por vuestras recomendaciones. :-)
>>>>>>
>>>>>>
>>>>>> El 13 de febrero de 2015, 14:31, Alexandro Colorado <jza en oooes.org>
>>>>>> escribió:
>>>>>>
>>>>>> Te reocomiendo quitar cgi, y usar wsgi. Es mas facil de configurar,
>>>>>>> aun asi, creo que tu problema tiene que ver con que apache no esta cogiendo
>>>>>>> la configuracion del mime-type (o tipo de archivo).
>>>>>>>
>>>>>>> 2015-02-13 7:33 GMT-05:00 Carlos Zuniga <carlos.zun en gmail.com>:
>>>>>>>
>>>>>>> 2015-02-13 5:16 GMT-05:00 Juan M. Puertas <soft.sirius en gmail.com>:
>>>>>>>> > Gracias por vuestras ideas.
>>>>>>>> > Juan ignacio. Si, los archivos .py tienen permisos de ejecutable
>>>>>>>> (755).
>>>>>>>> > Alejandro.  No estoy utilizando un framework. El programa es un
>>>>>>>> simple CGI,
>>>>>>>> > de momento las pruebas las estoy haciendo así. En el .htaccess
>>>>>>>> (puesto en
>>>>>>>> > /var/www y var/www/cgi-bin) tengo lo siguiente:
>>>>>>>> >
>>>>>>>> > DirectoryIndex index.html
>>>>>>>> > Options +ExecCGI
>>>>>>>> > AddHandler cgi-script .py .cgi
>>>>>>>> > AddType text/html .py .cgi
>>>>>>>> > <Directory /var/www/cgi-bin/>
>>>>>>>> >     Order deny,allow
>>>>>>>> >     Allow from all
>>>>>>>> > </Directory>
>>>>>>>> >
>>>>>>>> >  Mi pregunta sobre todo va por si a alguien le ha pasado que el
>>>>>>>> navegador
>>>>>>>> > intente abrir el archivo python en lugar de que corra.
>>>>>>>> >  Saludos :-)
>>>>>>>> >
>>>>>>>> >
>>>>>>>>
>>>>>>>> Lo intenta abrir, pero te devuelve el contenido del script python o
>>>>>>>> el
>>>>>>>> resultado de ejecutarlo? Si es lo segundo, tal vez el problema sea
>>>>>>>> que
>>>>>>>> el navegador no lo reconoce como un html. Intenta poner un `print
>>>>>>>> 'Content-type: text/html'` o 'text/plain' entre tus headers.
>>>>>>>>
>>>>>>>> Que dice el error.log / access.log de apache?
>>>>>>>>
>>>>>>>> También prueba chequear lo que dicen por aquí:
>>>>>>>> http://stackoverflow.com/a/10135416
>>>>>>>>
>>>>>>>> ****
>>>>>>>>
>>>>>>>> Por otro lado, sería mucho mejor que utilizaras mod_wsgi. Si no
>>>>>>>> quieres usar un framework, todo lo que tienes que hacer es poner una
>>>>>>>> funcion llamada `application` [0] en tu script que retorne una
>>>>>>>> cadena
>>>>>>>> dentro de una lista:
>>>>>>>>
>>>>>>>> def application(env, start_response):
>>>>>>>>     start_response('200 OK', [('Content-Type','text/html')])
>>>>>>>>     return ["<html><body>Hello World</body></html>"]
>>>>>>>>
>>>>>>>> Y configurar mod_wsgi para que apunte a tu script:
>>>>>>>>
>>>>>>>> WSGIScriptAlias /wsgi_app /srv/http/wsgi_app.py
>>>>>>>>
>>>>>>>> --
>>>>>>>> Saludos
>>>>>>>>
>>>>>>>>
>>>>>>>> [0] http://webpython.codepoint.net/wsgi_application_interface
>>>>>>>> _______________________________________________
>>>>>>>> Python-es mailing list
>>>>>>>> Python-es en python.org
>>>>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Alexandro Colorado
>>>>>>> Apache OpenOffice Contributor
>>>>>>> 882C 4389 3C27 E8DF 41B9  5C4C 1DB7 9D1C 7F4C 2614
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Python-es mailing list
>>>>>>> Python-es en python.org
>>>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Nota: Por problemas con el e-mail. Puede que recibas de nuevo este
>>>>>> mensaje en un tiempo.*
>>>>>>
>>>>>> _______________________________________________
>>>>>> Python-es mailing list
>>>>>> Python-es en python.org
>>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
>>>>> http://ch3m4.org/blog
>>>>> Buscador Python Hispano: http://ch3m4.org/python-es
>>>>>
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> Python-es en python.org
>>>>> https://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Nota: Por problemas con el e-mail. Puede que recibas de nuevo este
>>>> mensaje en un tiempo.*
>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> https://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>
>>>
>>> --
>>> Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
>>> http://ch3m4.org/blog
>>> Buscador Python Hispano: http://ch3m4.org/python-es
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> https://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>>
>> --
>> *Nota: Por problemas con el e-mail. Puede que recibas de nuevo este
>> mensaje en un tiempo.*
>>
>
>
>
> --
> *Nota: Por problemas con el e-mail. Puede que recibas de nuevo este
> mensaje en un tiempo.*
>



-- 
*Nota: Por problemas con el e-mail. Puede que recibas de nuevo este mensaje
en un tiempo.*
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20150219/247674a0/attachment.html>


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