Una volta terminato lo sviluppo di un’applicazione basata su Django, è il momento di installarla in produzione. Nel mio caso, ho utilizzato Django 1.3.1 e ho scelto di usare Apache con mod_wsgi. Vediamo come fare il deploy passo-passo:
Fortunatamente
mod_wsgirichiede Apache mpm-worker (anziché il meno performante prefork), installabile su Debian/Ubuntu con:sudo apt-get install libapache2-mod-wsgiSpostiamo l’applicazione sotto un percorso di sistema, ad esempio
/usr/share/app.Aggiungere al file di configurazione di Apache (ad es.
/etc/apache2/sites-available/myapp.conf) la direttiva:WSGIScriptAlias / /usr/share/app/django.wsgiIl primo parametro (
/) rappresenta il path a cui Django dovrà rispondere (in questo caso la root), mentre il secondo parametro è il file WSGI che creeremo nel passo successivo.Creare il file
django.wsgicon il seguente contenuto Python:import os import sys import django.core.handlers.wsgi path = '/usr/share/app' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'app.settings' application = django.core.handlers.wsgi.WSGIHandler()Ricordatevi di impostare correttamente il path e il modulo settings (che corrisponde al file
settings.pydi Django).Riavviare Apache:
service apache2 restart
Aprite il browser puntando all’URL definito al punto 3 e controllate che tutto funzioni (diversamente, controllate l’error log di Apache). Una soluzione aggiuntiva è quella di introdurre un reverse proxy (scelta personale: nginx) davanti ad Apache per servire i file statici (js, css, immagini, ecc.). Ma questo sarà argomento di un altro post.