User Tools

Site Tools


django-apache

This is an old revision of the document!


Deploy di Django su Apache2

Abbiamo deciso di collocare la directory dell'applicazione in /usr/local:

cd /usr/local
git clone $url

Creare un branch locale di deploy:

git checkout -b deploy

Configurare il settings.py in base alle istruzioni e alle singole esigenze dell'applicazione:

cd $nome_progetto
cp $nome_progetto/settings{_dist,}.py

Raccogliere i file statici (la procedura puo' variare a seconda dell'applicazione):

mkdir static
python manage.py collectstatic

Aggiungere in settings.py queste 2 righe:

STATIC_URL = '/static/'
STATIC_ROOT = '/usr/local/$nome_progetto/static/'

Controllare i permessi, impostare il database e installare le dipendenze, facendo riferimento alla documentazione dell'applicazione.

Creare il file $nome_progetto/wsgi_local.py con questo contenuto:

import os, sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "$nome_progetto.settings")
sys.path = ['/usr/local/$nome_progetto/'] + sys.path
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

NB: corregge il path assoluto

Creare il file di deploy di Apache su /etc/apache2/sites-available/$nome_progetto:

<VirtualHost *:80>
      ServerAdmin webmaster@befair.it
      ServerName $server_name
      DocumentRoot /usr/local/$nome_progetto/
      WSGIScriptAlias / /usr/local/$nome_progetto/$nome_progetto/wsgi_local.py
      Alias /static /usr/local/$nome_progetto/static
      <Directory /usr/local/$nome_progetto_static/>
              Order allow,deny
              Allow from all
      </Directory>
      <Directory /usr/local/$nome_progetto/>
              Order allow,deny
              Allow from all
              <Files $nome_progetto/wsgi_local.py>
                      Require all granted
              </Files>
      </Directory>
      ErrorLog ${APACHE_LOG_DIR}/$nome_progetto_error.log
      # Possible values include: debug, info, notice, warn, error, crit,
      # alert, emerg.
      LogLevel warn
      CustomLog ${APACHE_LOG_DIR}/$nome_progetto_access.log combined
</VirtualHost> 

Attivare il virtual host e ricaricare Apache:

ln -s /etc/apache2/sites-{available,enabled}/$nome_progetto
service apache2 reload
django-apache.1402584491.txt.gz ยท Last modified: 2014/10/28 11:28 (external edit)