Ir al contenido principal

Servir aplicaciones Django en Apache2

En esta ocasión mostraré la manera en que se configura el Apache 2 para servir una aplicación Django.
Para ello y tras actualizar el sistema, será necesario instalar los paquetes de Django y Apache, por si no lo estuvieran.


apt-get install python-django
apt-get install libapache2

El módulo que permitirá "conectar" el servidor Apache2 con la aplicación será mod_wsgi.
Para instalarlo será necesario descargarlo de la web oficial y ejecutar el comando ./configure.
Seguramente será necesario instalar apxs mediante los paquetes:
sudo apt-get install apache2-threaded-dev

http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide 

Incluir la línea LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so en httpd.conf


Partimos de la base que el nombre del proyecto es ejemplo y se encuentra en la carpeta /home/

Se crearán dos ficheros.

El primero de ellos nos situamos en la carpeta del proyecto y creamos un directorio con el nombre apache y un archivo con el siguiente texto:

cd home
mkdir apache
nano django.wsgi

django.wsgi

import os, sys

sys.path.append('/home')
sys.path.append('/home/ejemplo')

os.environ['DJANGO_SETTINGS_MODULE']= 'ejemplo.settings'

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


El segundo consistirá en agregar un archivo con el nombre del proyecto en la carpeta:

/etc/apache2/sites_available/ejemplo

#WSGIDaemonProcess ejemplo user=root group=root threads=25
WSGIDaemonProcess ejemplo threads=25
WSGIProcessGroup ejemplo

Alias /media/ /home/ejemplo/media/

<Directory /home/ejemplo/media >
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory >

WSGIScriptAlias / /home/ejemplo/apache/django.wsgi

<Directory /home/ejemplo/apache>
    AllowOverride All
    Order deny,allow
    Allow from all
</Directory >

... y ejecutar el comando:

 a2ensite ejemplo

para crear el acceso directo al que accederá Apache2. 
Trás reiniciar el apache, el localhost tendrá el tan deseado pantallazo de "todo OK"
 

sudo /etc/init.d/apache2 restart
 

Comentarios

Entradas populares de este blog

Servir aplicación Django con Cherokee

Estos son los pasos que he seguido para servir una aplicación Django en un servidor Cherokee con el módulo WSIGI . He usado este servidor de aplicaciones porque es más rápido y libiano que Apache. En este caso, he virtualizado un Ubuntu-sever con VirtualBox , por lo que parto de una instalación "pelada" del sistema operativo. Durante la instalación de la máquina virtual, el único paquete que he instalado ha sido el ssh-server, para evitar que me instale cualquier servidor que pueda confrontar con el cherokee. Después de actualizar el sistema operativo, he instalado los siguientes paquetes. Es importante señalar que estos comandos instalará los paquetes con la última release, lo que puede provocar incompatibilidades con la aplicación desarrollada. De ser necesaria alguna versión concreta, será necesario descargarlo e instalarlo a mano con las instrucciones del programador. Django: https://www.djangoproject.com/download/ Cherokee: http://www.cherokee-project.com/d...

Configurando XBEE

Ambos Xbee se configura en modo end point o nodo, es decir, ninguno es concentrador, lo que permite una comunicación bidireccional y sin esperas. Comandos AT: ATID -> Corresponde al PanId o el número que engloba todos los dispositivos XBee de una misma red. ATMY -> Es el valor individual para cada nodo. ATDL -> Indica el número de nodo destino. ATCE -> Tiene valor 1 o 0, dependiendo de si es concentrador o no. ATRE -> Restaura valores de fábrica. ATWR -> Almacena los valores de configuración en la memoria no volátil. ATCN -> Sale del modo configuración. ATBD -> Tasa de transmisión, por defecto 3= 9600. ATAP -> API Mode. (Enable: 1, Disable: 0) Ejecutar en un terminal la aplicación GtkTerm y configurar las siguientes opciones como muestra la figura seleccionando el ttyUSBx que corresponda: Una vez configurado, introducir +++ y obtener OK de parte del XBee, configurar el Xbee con los siguientes parámetros: ATID ATMY ATDH ATDL ATCE XB...

jquery

Selectores: $("#myDiv")-> Id $("div")-> etiqueta (div, span, h1) $(".myClass")-> mi class $("*")-> cualquier etiqueta $("div,span,p.myClass")-> otra posibildad   $("div: has (p)") --> contiene una etiquta dentro de otra. $("div: contains ('John')")--> etiqueta que contiene la palabra dada $("td: empty ") --> etiqueta vacía $("td: parent ") --> eiqueta padre, es decir los primeros td de cada tr Filtros Básicos: $("tr: first ") --> Encuentra el primer elemento $("tr: last ") --> Encuentra el último elemento $("tr: even ") --> uno sí-otro no $("tr: odd ") --> y viceversa $("tr: eq(índice) ") --> encuentra el índice $("tr: gt(índice) ") --> a contar a partir del índice $("tr: lt(índice) ") --> a contar hasta el índice Atributos de selección $("div[id]"). on...