Deploy de Django, Apache2 y mod_wsgi

Deploy de Django, Apache2 y mod_wsgi

En este post quiero explicar los pasos que lleve a cabo para poner en producción este blog.

Una de las tareas que todo Sysadmin es la puesta en producción de aplicaciones en diferentes lenguajes de programación. En el caso de PHP, la cosa es bastante facil, si lo hacemos con apache, por ejemplo, sólo tenemos que instalar apache, instalar y habilitar el módulo para PHP y luego copiar el sitio a la raíz del servidor o del virtual host que tengamos configurado para dicho sitio.

Con Django y las aplicaciones en general, la cosa es un poco diferente, ya que, la configuración lleva una mayor cantidad de pasos que hay que realizar.

A continuación trataré de explicarlos todos.pasos que realizé para la puesta en producción de este blog.

Subir el proyecto: Subimos el proyecto, ya sea por ftp, ssh o lo que mejor nos parezca.

Instalamos las dependencias que necesita nuestro proyecto para funcionar con el siguiente comando: sudo pip install -r /ruta/a/requirements.txt si vamos a instalar las dependencias en nuestra instalación del sistema de python o pip install -r /ruta/a/requirements.txt si estamos usando virtualenv.

Editamos el archivo de definición del Virtual Host de Apache y agregamos las siguientes lineas:

Alias /static/ /ruta/a/static/
Alias /media/ /ruta/a/media/
<Directory /ruta/a/static>
    Order deny,allow
    Allow from all
<Directory>

<Directory /ruta/a/media>
    Order deny,allow
    Allow from all
<Directory>

WSGIDaemonProcess houseofsysadmin user=www-data group=www-data threads=25
WSGIProcessGroup houseofsysadmin
WSGIScriptAlias / /ruta/a/django.wsgi

El contenido del archivo django.wsgi es el siguiente:

:::python
import os
import sys
import site

BASEDIR = os.path.dirname(os.path.abspath(__file__))

#site.addsitedir(BASEDIR + '/venv/lib/python2.5/site-packages')
sys.path.append(BASEDIR)
sys.stdout = sys.stderr

os.environ['DJANGO_SETTINGS_MODULE'] = 'houseofsysadmin.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Y por último, habilitamos el módulo mod_wsgi de apache con el siguiente comando: a2enmod wsgi

Y con eso deberíamos de tener nuestro proyecto con django funcionando.

Espero que les sea de ayuda.

Pingbacks

Los pingbacks están cerrados.

Comentarios

Los comentarios están deshabilitados.