2010-10-20

Apache + Django + mod_wsgi 연동 설치

오랜만에 Django 를 살펴보고 있는데, 예전에는 설치할때, mod_python 이 권장이었는데, 지금은 mod_wsgi 로 설치하는 것을 권장하고 있다. 이에 WSGI 연동 설치하는 방법을 다시 한번 정리하였다. 급하게 정리한 것이라서 뭔가 부족한 것이 있을 수도 있지만, 일단 페이지가 열리는 것을 확인했으니, 테스트/개발 시에는 참고하면 괜찮을 것이다. ^^ 참고로, Debian/Ubuntu Linux 를 기반으로 작성하였으니 주의 바란다.


  1. Django 설치, Apache + mod_wsgi 설치
    # apt-get install python-django libapache2-mod-wsgi
  2. 프로젝트 생성
    $ mkdir -p /opt/project/web
    $ cd /opt/project/web
    $ django-admin startproject 프로젝트이름
  3. 템플릿 디렉토리 설정
    $ cd 프로젝트이름
    $ mkdir templates
    
    settings.py :
    import os
    
    ...
    
    TEMPLATE_DIRS = (
        os.path.join(os.path.dirname(__file__), 'templates'),
    )
  4. 어플리케이션 생성
    $ cd /opt/project/web/프로젝트이름
    $ python manage.py startapp 어플리케이션이름
  5. URL 설정 (urls.py)
    from 프로젝트이름.어플리케이션이름.views import *
    urlpatterns = patterns('',
        (r'^$', index),
    )
  6. View 작성
    $ cd /opt/project/web/프로젝트이름/어플리케이션이름
    $ vi views.py
    from django.shortcuts import render_to_response
    from django.template import RequestContext
    
    def index(request):
        return render_to_response(
            'index.html',
        )
  7. 템플릿 작성
    $ cd /opt/project/web/프로젝트이름/templates
    $ vi index.html
    <html>
    <head><title>The First Page</title></head>
    <body><h1>The First Page : Success ^^</h1></body>
    </html>
  8. django.wsgi 설정
    # cd /opt/project/web/프로젝트이름
    # vi django.wsgi
    import os
    import sys
    sys.path.append('/opt/project/web')
    os.environ['DJANGO_SETTINGS_MODULE'] = '프로젝트이름.settings'
    
    import django.core.handlers.wsgi
    application = django.core.handlers.wsgi.WSGIHandler()
  9. Apache 설정
    # cd /etc/apache2/sites-available
    # vi 프로젝트이름
    NameVirtualHost 아이피:80
    
    <Virtualhost 아이피:80>
        ServerName 도메인주소
        DocumentRoot /opt/project/web
    
        WSGIScriptAlias / /opt/project/web/프로젝트이름/django.wsgi
    
        <Location "/css">
            SetHandler None
        </Location>
    </Virtualhost>
    
    # a2ensite 프로젝트이름
  10. 이제, 아파치를 재시작하고 웹브라우즈에서 http://도메인주소/를 입력해보자.