django y apache virtual host

Creamos un servidor de prueba

Empezamos con la configuración para verificar que esté andando mod_wsgi.

Comenzamos instalando mod-wsgi para apahce. Si no teníamos apache o django, los instalamos también!

patricio@plg:~$ sudo apt-get install libapache2-mod-wsgi

Creamos el directorio donde alojar el proyecto de pruebas

/home/patricio/dev/django/test/

En ese directorio creamos el archivo app.wsgi con la respuesta http para probar que funciona el mod_wsgi

def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

Editamos el arcivo /etc/hosts para que resuelva nuestra petición agregando estas líneas

127.0.1.1	djangoserver
127.0.1.1	test.djangoserver

Ahora creamos un host virtual llamado test-wsgi:

sudo gedit /etc/apache2/sites-available/test-wsgi

y ahi ponemos lo siguiente:

<VirtualHost *:80>

    ServerName test.djangoserver
    DocumentRoot /home/patricio/dev/django/test

    <Directory /home/patricio/dev/django/test >
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias / /home/patricio/dev/django/test/app.wsgi

</VirtualHost>

ahora activamos el host virtual y reiniciamos apache:

sudo a2ensite test-wsgi
sudo /etc/init.d/apache2 reload

Esto es todo, probamos que todo esté andando

http://test.djangoserver

Debería devolver un hermoso y original “Hello World”

 

Configuramos mod_wsgi en nuestro proyecto

El proceso es similar al anterior.

Trabajaremos sobre un proyecto django llamado “proyecto”. De nuevo muy originales!

Creamos un archivo llamado django.wsgi

/home/patricio/dev/django/proyecto/apache/django.wsgi

con el siguiente contenido

import os
import sys

sys.path.append('/home/patricio/dev/django')
sys.path.append('/home/patricio/dev/django/proyecto')

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

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

Ahora creamos la entrada en hosts.conf

127.0.1.1	proyecto.djangoserver

creamos el host virtual, lo activamos y reiniciamos apache

sudo gedit /etc/apache2/sites-available/proyecto
<VirtualHost *:80>

    ServerName test.djangoserver
    DocumentRoot /home/patricio/dev/django/proyecto

    <Directory /home/patricio/dev/django/proyecto >
        Order allow,deny
        Allow from all
    </Directory>

    WSGIDaemonProcess proyecto.djangoserver processes=2 threads=15 display-name=%{GROUP}
    WSGIProcessGroup proyecto.djangoserver

    WSGIScriptAlias / /home/patricio/dev/django/proyecto/apache/django.wsgi

</VirtualHost>
sudo a2ensite proyecto
sudo /etc/init.d/apache2 reload

Finalizada la configuración básica, para probarlo

http://proyecto.djangoserver

Esto es solamente la configuración básica, para mayores detalles, ir al sitio oficial de mod_wsgi

 

Anuncios
Publicado en Uncategorized

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: