Deploying django by python manage.py runserver to production on VPS

Marijus picture Marijus · Apr 20, 2014 · Viewed 10.2k times · Source

I've bought a VPS for my django app. I've never ever before deployed django, or any other application. I've read a few tutorials on how to deploy django using apache and wsgi and some other options gunicorn, ngix. To me it all seems very frustrating and hard to understand. I was wondering what would happen if I deployed my application by changing debug to false, creating a database, plugging it in and then simply running python manage.py runserver my-ip. Is this a bad practice ?

Answer

WeizhongTu picture WeizhongTu · Apr 20, 2014

It is easy to learn how to deploy a Django project.

At first, you should know how to install Apache and mod_wsgi

if you use Ubuntu

sudo apt-get install apache2 libapache2-mod-wsgi

or Fedora (red hat) (without test)

yum install httpd mod_wsgi

Then, you should know how to associate Apache2 with your Django project

<VirtualHost *:80>
    ServerName example.com
    ServerAdmin [email protected]

    Alias /media/ /home/tu/blog/media/

    <Directory /home/tu/blog/media>
        Require all granted
    </Directory>

    WSGIScriptAlias / /home/tu/blog/blog/wsgi.py

    <Directory /path/to/django/project/wsgifile>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
</VirtualHost>

The sentence WSGIScriptAlias associate Apache2 configuration with your Django project in Django wsgi.py file, you will see project.settings included, that is how it works

The following may be easy to understand how it works

*.conf --> wsgi.py --> settings.py --> urls.py and apps

just search in Google like ubuntu django server mod_wsgi and learn it yourself!