Apache + Django + mod_wsgi 연동 설치
오랜만에 Django 를 살펴보고 있는데, 예전에는 설치할때, mod_python 이 권장이었는데, 지금은 mod_wsgi 로 설치하는 것을 권장하고 있다. 이에 WSGI 연동 설치하는 방법을 다시 한번 정리하였다. 급하게 정리한 것이라서 뭔가 부족한 것이 있을 수도 있지만, 일단 페이지가 열리는 것을 확인했으니, 테스트/개발 시에는 참고하면 괜찮을 것이다. ^^ 참고로, Debian/Ubuntu Linux 를 기반으로 작성하였으니 주의 바란다.
- Django 설치, Apache + mod_wsgi 설치
# apt-get install python-django libapache2-mod-wsgi
- 프로젝트 생성
$ mkdir -p /opt/project/web $ cd /opt/project/web $ django-admin startproject 프로젝트이름
- 템플릿 디렉토리 설정
$ cd 프로젝트이름 $ mkdir templates settings.py : import os ... TEMPLATE_DIRS = ( os.path.join(os.path.dirname(__file__), 'templates'), )
- 어플리케이션 생성
$ cd /opt/project/web/프로젝트이름 $ python manage.py startapp 어플리케이션이름
- URL 설정 (urls.py)
from 프로젝트이름.어플리케이션이름.views import * urlpatterns = patterns('', (r'^$', index), )
- 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', )
- 템플릿 작성
$ 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>
- 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()
- 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 프로젝트이름
- 이제, 아파치를 재시작하고 웹브라우즈에서 http://도메인주소/를 입력해보자.
많은 도움이 되었습니다. 감사합니다.
답글삭제name 'index' is not defined
답글삭제라는 에러가 발생하는군요
어디가 문제일까요?
한번에 해결했네요 감사합니다.
답글삭제