mod_wsgi + Python 2.6 en CentOS

Python

Hace algún tiempo publiqué un artículo donde explicaba cómo instalar mod_python con Python 2.6 en CentOS, por el problemita que tiene yum que no funciona con la última versión de Python. Pues bien, últimamente por lo que he venido leyendo, una alternativa mejor a mod_python es mod_wsgi, pues aparentemente funciona bastante mejor, más rápido y es la opción recomendada para usar con Apache y Django.

Por lo tanto, dejo esta guía muy sencilla de cómo instalar mod_wsgi con Python 2.6 en CentOS.

Descargar mod_wsgi, descomprimir y configurar

# cd /usr/src
# wget http://modwsgi.googlecode.com/files/mod_wsgi-3.1.tar.gz
# tar zxvf mod_wsgi-3.1.tar.gz
# cd mod_wsgi-3.1
# ./configure --with-python=/usr/bin/python2.6

Esa última línea es la clave para que utilice la instalación correcta de Python (ver el artículo anterior para saber cómo instalar Python 2.6 sin pisar la versión actual).

Luego compilamos e instalamos

# make && make install

Agregamos la línea para cargar el módulo en el httpd.conf

LoadModule wsgi_module        lib/apache/mod_wsgi.so

Y reiniciamos el Apache

service httpd restart

Luego para configurar un virtual host para que utilice mod_wsgi no es tan sencillo, pero tampoco es demasiado complicado. Básicamente hay que generar un archivo .wsgi, que no es más que un archivo Python que va a ser el que se integre con mod_wsgi y luego configurarlo en el httpd.conf. Lo que hay que tener en cuenta es que mod_wsgi no sirve contenido estático, por lo cual uno debe configurar por un lado el handling del código python y por otro los archivos estáticos. Si bien es algo distinto a lo que solemos hacer con mod_php, es algo bastante lógico y es una buena práctica pensar en servir por separado el contenido dinámico y el estático.

Como es un poco complejo, lo mejor es leer la guía correspondiente. En el sitio de mod_wsgi van a ver que hay mucha documentación. Particularmente, la guía de integración con Django es muy útil.

Bookmark and Share
Comentar

2 Comentarios.

  1. Me viene de 10, justo tengo que investigar sobre el tema. No sobre CentOS, sino sobre Debian, pero asumo que no cambia mucho.

    Un tutorial sobre configuración de mod_wsgi también estaría bueno, saben si hay alguno para principiantes en Apache en alguna parte?

    Gracias!

  2. elbarto andresgattinoni.com.ar

    En Debian es más fácil. El tema con CentOS es que el sistema de paquetes que tiene (yum) está hecho en Python, pero solo funciona con Python 2.4. Si actualizás Python así nomás, rompés el yum. Entonces tenés que instalar Python 2.6 aparte.

    Con Debian no vas a tener ese drama. Y tenés un paquete con mod_wsgi: libapache2-mod-wsgi.

    Después voy a ver si publico algún otro artículo sobre cómo configurar la parte de Apache. En todo caso, si tenés alguna duda en particular avisame.

    Saludos

Comentar


[ Ctrl + Enter ]