Pawel Furmaniak
Pawel Furmaniak

Reputation: 4806

django deployment apache

I would like to create a python script, which will:

  1. Create a django project in the current directory. Fix settings.py, urls.py.
  2. Do syncdb
  3. Install new apache instance listening on specific port (command line argument), with WSGI configured to serve my project.

I can't figure out how to do point 3.

EDIT:

Peter Rowell:

Upvotes: 1

Views: 1005

Answers (2)

adamk
adamk

Reputation: 46794

One way is to use Apache's mod_wsgi. After installing, you create a wsgi file and point Apache's config to it.

Sample wsgi file:

import os
import sys

sys.path.append('/path/to/settings.py')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mydjangoapp.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Add this to your apache config (on Linux it is in /etc/apache2/sites-available/default):

<VirtualHost *:1234>
        ServerName my.host.name.com
        WSGIScriptAlias / /path/to/wsgi/file/django.wsgi
</VirtualHost>

(assuming the port is 1234)

Upvotes: 1

Brian Luft
Brian Luft

Reputation: 1173

Jacob Kaplan Moss' Django Deployment Workshop assets have some nice examples. You'll probably still need to do some legwork on your end to automate things to your taste but there may be some stuff in there you can use as a starting point.

http://github.com/jacobian/django-deployment-workshop

Upvotes: 1

Related Questions