Cómo desplegar Django 1.5 en Apache con mod_wsgi, en Ubuntu 13.04

En este post voy a mostrarles como desplegar una aplicación web hecha con Django 1.5 (usando Python 2.7 y virtualenv), en un servidor web Apache (versión 2.2), en Ubuntu 13.04

En mi caso mi aplicación se llama visor y quisiera acceder a él usando la URL visor.local

1) Instalar el módulo mod_wsgi de Apache

2) Reiniciar Apache para que cargue el módulo

3) Verificar que el módulo se ha cargado y está habilitado

En la lista resultante deberíamos observar algo como

4) Crear el archivo de configuración en sites-available

5) Activo el nuevo sitio: Ejecuto el siguiente comando dentro de la misma carpeta sites-available

6) Modifico el archivo de hosts

7) Reinicio el Apache

Y listo, ya podemos ir a nuestro navegador web e ingresar la dirección visor.local y deberíamos ver nuestra aplicación funcionando.

 

 

 

 

 

 

 

Usando pip con servidores alternativos

Desde que uso pip para instalar los paquetes de python dentro de mis entornos virtuales de desarrollo (virtualenv), me he dado cuenta que instalar Django es particularmente difícil.

Por ejemplo, cuando se ejecuto el comando

La respuesta que se obtengo, luego de esperar un par de minutos, es que la conexión con el servidor ha expirado (timeout) y el paquete no se ha instalado.

Por default, pip trata de descargar los paquetes del servidor http://pypi.python.org/simple/ así que mi primer intento por solventar este problema es usar la opción –use-mirrors del comando para consultar un servidor alternativo

Pero nuevamente, la conexión expira ya que el servidor alternativo consultado http://a.pypi.python.org/simple/ tampoco responde en un tiempo razonable.

Buscando por internet descubrí que es posible definir manualmente un servidor alternativo diferente gracias a la opción –index-url

Si este mirror (servidor espejo) tampoco funciona, es posible probar con cualquiera de los siguientes servidores hasta obtener una conexión con el repositorio de paquetes de pip:

  • http://a.pypi.python.org/simple/
  • http://b.pypi.python.org/simple/
  • http://c.pypi.python.org/simple/
  • http://d.pypi.python.org/simple/
  • http://e.pypi.python.org/simple/
  • http://f.pypi.python.org/simple/
  • http://g.pypi.python.org/simple/

Para poder ver la disponibilidad y tiempo de respuesta de cada uno de estos mirrors se puede consultar esta página web: http://www.pypi-mirrors.org/

Como escribir siempre la dirección completa del mirror es tedioso, es posible definir como servidor default al mirror C modificando el archivo de configuración global de pip

En mi caso el archivo de configuración queda como:

Ahora, cada vez que corra el comando

Estaré consultando el repositorio desde el mirror C y no desde el servidor estándar

Espero que este pequeño tip ayude a otros programadores a no perder tiempo en la configuración de sus entornos virtuales.