Deploying django

Ya que hace poco que he deployeado (=publicado) un par de proyectos Django voy a explicar cómo hacerlo, entre ellos el blog experimental http://dug0.com/lachispaadecuada .

El deploy lo he hecho con Apache y mod_wsgi, recomiendo descargar el módulo y compilarlo, mejor que descargarlo de los repositorios, está más actualizado y a me dio problemas el de los repos.

Una vez instalado el módulo y activado, copiamos el proyecto a un directorio donde contendremos los proyectos Django, pueder ser /var/webapp o similares.

Hecho esto creamos en el directorio principal de nuestro proyecto el fichero django.wsgi que contendrá;

import os
import sys
from django.core.management import setup_environ


path = sys.path.append(os.path.abspath(os.path.dirname(__file__)))
if path not in sys.path:
    sys.path.append(path)

import settings
setup_environ(settings)

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Que vale para cualquier proyecto Django. ¿No recuerda a http://dug0.com/django/script-python-con-entorno-de-django?

Hecho esto, añadimos a Apache;

WSGIScriptAlias / /var/webapp/MyDjangoProject/django.wsgi

Y ahora tenemos la parte dinámica, pero también queremos tener acceso a la estática, para lo que añadimos;

Alias /media /var/webapp/MyDjangoProject/media

<Directory /var/webapp/MyDjangoProject/media>
Order deny,allow
Allow from all
</Directory>

Y para tener acceso a los contenidos estáticos del área administrativa, que deberá estar situada en /media/admin. Creamos un enlace simbólico con el nombre admin en el directorio /var/webapp/MyDjangoProject/media al destino /usr/local/lib/python2.6/dist-packages/django/contrib/admin/media. Que es la ruta donde están los contenidos estáticos, al menos Python 2.6+Django 1.2.3 en Ubuntu.

¡Reiniciamos Apache y a volar!

  1. Aun no hay comentarios.

  1. Aun no hay enlaces.