Skip to content

Instantly share code, notes, and snippets.

@MHM5000
Forked from fduran/django_install_apache.md
Created February 12, 2017 15:34
Show Gist options
  • Save MHM5000/baffe43d3fbc15288f0d4a0ad23de344 to your computer and use it in GitHub Desktop.
Save MHM5000/baffe43d3fbc15288f0d4a0ad23de344 to your computer and use it in GitHub Desktop.
Django Install - Apache

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/  
    <Directory /home/ubuntu/fotomono/media>  
            Order allow,deny  
            Allow from all  
    </Directory>  
    <Location "/media/">  
            SetHandler None  
            #Header set Cache-Control "max-age=290304000, public"  
            Options -Indexes +FollowSymLinks  
            allow from all  
    </Location>  

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment