Django Install - Apache ======================= **Once per server:** apt-get update && apt-get upgrade apt-get install libapache2-mod-wsgi apt-get install python-setuptools python-dev build-essential easy_install -U pip pip install virtualenv **Per project:** cd /home mkdir fotomono && cd fotomono virtualenv --no-site-packages venv source venv/bin/activate pip install django django-admin.py startproject fotomono cd fotomono python manage.py runserver 0.0.0.0:8080 mkdir -p media/css mkdir media/js mkdir media/img For sqlite3: mkdir db touch db/sqlite.db chown -R www-data:www-data db For msyql: apt-get install libmysqlclient-dev apt-get install python-dev pip install MySQL-python pip freeze > ../requirements.txt python manage.py startapp app (creates app/models.py views.py skeleton) nano fotomono/settings.py DATABASES = STATIC_URL = '/media/' STATICFILES_DIRS = (full path of above) TEMPLATE_DIRS = (full path) INSTALLED_APPS = (app, needed if syncdb) mkdir app/templates mkdir apache cp fotomono/wsgi.py apache/django.wsgi nano apache/django.wsgi site.addsitedir('path to/venv/lib/python2.7/site-packages') path nano /etc/apache2/sites-available/fotomono WSGIScriptAlias / /home/ubuntu/fotomono/apache/django.wsgi Alias /media/ /home/ubuntu/fotomono/media/ Order allow,deny Allow from all SetHandler None #Header set Cache-Control "max-age=290304000, public" Options -Indexes +FollowSymLinks allow from all for version control: cp /etc/apache2/sites-available/fotomono apache/virtualhost a2ensite fotomono nano fotomono/urls.py nano app/views.py nano app/templates/index.html /etc/init.d/apache2 restart nano app/models.py python manage.py syncdb nano .gitignore pip freeze > requirements.txt git init git add . git commit -m "initial commit" git remote add origin ssh://git@bitbucket.org/fduran/fotomono.git git push -u origin --all git push (master origin) **Admin:** ln -s /home/ubuntu/venvmono/lib/python2.7/site-packages/django/contrib/admin/static/admin media/admin add rule in urls.py enable as INSTALLED_APPS in settings.py create app/admin.py python manage.py syncdb **DB backup:** python manage.py dumpdata > db_backup.json drop app_ tables; make changes to models.py syncdb python manage.py loaddata db_backup.json