Ir al contenido principal

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/downloads.html

  1. apt-get install cherokee
  2. apt-get install python-django
  3. apt-get install build-essential python-dev libxml2-dev
  4. apt-get install libcherokee-mod-rrd (este paquete elimina una alerta que da al ejecutar el cherokee-admin)
  5. install python-pip
  6. pip install wsgi

Una vez instalados los paquetes, y desde una conexión ssh, accedemos al panel de configuración de Cherokee.

cherokee-admin -u -b

*-u -b hace que se pueda acceder en remoto al interfaz y no pida contraseña.

http://IP:9090

  
Se ejecutan los comandos necesarios Django para crear el modelo propio del framework.

*para el ejemplo me he situado sobre el directorio Home
  • django-admin startproject aplidjango
  • django-admin startapp appdjango
Esto creará el conocido modelo de carpetas y archivos propio:


 aplidjango
├── appdjango
│   ├── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── __init__.py
├── manage.py
├── settings.py
└── urls.py
Hay que crear un par de archivos de texto dentro del directorio appdjango:


django_wsgi.py

import os
import django.core.handlers.wsgi

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

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



uwsgi.xml
 
<uwsgi> 
    <pythonpath>/home/aplidjango/appdjango/</pythonpath>
    <pythonpath>/home/aplidjango/</pythonpath>
    <app mountpoint="/">
        <script>django_wsgi</script>
    </app>  
</uwsgi>


Volviendo al interfaz de configuración, completar el campo Raiz de documentos:


Pinchar en Comportamiento, Rule Managment y Nuevo

Seleccionar Plataformas y uWSGI. Añadir.

En el campo Fichero de configuración agregar la dirección donde está ubicado el fichero de django.xml


/home/aplidjango/uwsgi.xml

Dejar por defecto / para el directorio web. Se agregará en el margen de la izquierda el nuevo Rule Managment.

Si pinchamos en Orígenes, observaremos la nueva regla y el servidor virtual al que está vinculado:


Guardar la configuración y reiniciar el servidor:

sudo /etc/init.d/cherokee restart

Al poner la IP del servidor obtendremos el tan ansiado pantallazo:



Ahora es el momento de pegar nuestro proyecto, conservando o modificando los ficheros creados con django-admin.

Comentarios

Entradas populares de este blog

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...