Te pongo un capítulo de un tutorial de Django disponible en http://www.maestrosdelweb.com/editorial/curso-django-despliegue-en-el-servidor-web/ Personalmente yo no le he hecho completo pero este tute está muy bueno, yo lo tengo en PDF pesa 12 MB (dirección para descargarlo http://www.maestrosdelweb.com/guias/#guias-django)
DESPLIEGUE DEL SERVIDOR WEB Existen muchas formas de llevar un proyecto de Django a producción y justamente es uno de los motivos que generan mayor confusión. La documentación del proyecto para el despliegue de Django nos sugiere tres formas: 1 Usando WSGI 2 Usando FastCGI, SCGI o AJP 3 mod_python (obsoleto)4 De estas tres opciones, he visto por conveniente usar la primera de ellas (WSGI), me parece más simple de replicar sin entrar en mucho detalle. Sin embargo no sólo es eso, también existen otras tres opciones para trabajar con WSGI, estas son: Apache y mod_wsgi uWSGI Gunicorn Y de la misma manera elegí la primera, Apache es un servidor que muchos han instalado previamente y que de seguro, ya saben hacerlo y configurarlo independientemente del sistema operativo que usen, si no lo sabes hacer aún, hay mucha información en Internet de como hacerlo, te comparto un vídeo que te puede servir: Installing LAMP On Ubuntu. Es necesario que tengas por lo menos conocimientos básicos de como levantar un servidor Apache, un poco de virtualhost y como configurarlo para que puedas abrir otros puertos, si no sabes estos temas puedes saltarte a la parte de proveedores o tomar una pausa en el curso para aprender un poco más de lo que te he mencionado y entiendas mejor lo que sigue. CONFIGURACIÓN EN EL SERVIDOR Una vez con Apache corriendo, para nuestro ejemplo vamos a usar el puerto 90, para ello debemos asegurarnos tener, en nuestro httpd.confla línea: Listen 90 Luego es necesario tener instalado y activado mod_wsgipara que trabaje con Apache, de la misma manera, si no sabes hacerlo, es sencillo buscar más información sobre esto por Internet, no te tomará mucho tiempo. Adicionalmente también debes tener la siguiente línea en nuestro httpd.conf: WSGIPythonPath /ruta_del_directorio_del_proyecto/recetario/ Es la ruta absolutade tu directorio del proyecto (ese directorio que tiene el manage.py), si usas Windows no olvides que la ruta debe ir entre comillas para evitar inconvenientes, algo como: WSGIPythonPath "letra://ruta_del_directorio_del_proyecto/recetario/" Una vez con estas dos líneas configuradas, es momento de crear nuestro virtualhost, debe quedar de la siguiente manera (ver imagen adjunta): Si se dan cuenta hay dos alias uno para static y el otro para media, aquí una aclaración, se recomienda utilizar un servidor web diferente para servir los archivos estáticos (static y media), es por ello que para eso Django puede funcionar usualmente con: 1. Nginx 2. lighttpd 3. TUX web server 4. Cherokee Pero, para no hacer complejo este capítulo, vamos a usar el mismo Apache para este propósito, por eso declaré dos alias y dos directorios más en el virtualhost, como se puede ver en la imagen anterior. Ahora es momento de cambiar las configuraciones de nuestro proyecto, necesita-mos poner rutas absolutas, para que todo se enlace correctamente. Abrimos nuestro archivo settings.py y modificamos las siguientes líneas: DEBUG = False En el nombre de la base de datos, se debe incluir la ruta absoluta completa, así (en Windows debe ir entre comillas, no lo olvides): 'NAME': '/ruta_del_directorio_del_proyecto/recetario/recetario.db', El media url debe ir así: MEDIA_URL = 'http://localhost:90/media/' El static url debe ser así: STATIC_URL = 'http://localhost:90/static/' Como el modo de depuración esta desactivado (DEBUG = False), necesitamos dos plan-tillas más, una que maneje el error 404 y otra el error 500, sus nombres deben ser: 404.htmly 500.html........ -- Este mensaje ha sido analizado por MailScanner en busca de virus y otros contenidos peligrosos, y se considera que está limpio. ______________________________________________________________________ Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba. Gutl-l@jovenclub.cu https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l