ubuntu에서 django 설치

Python : 2008. 11. 29. 19:40
반응형
출처 : http://iam312.pe.kr/264




웹 어플리케이션을 작성하기 위한 대표적인 framework 은 ruby on rails 다. 하지만 내가 잘 모르는 ruby 를 사용하려니 왠지 막막하고, 더구나, 웹서버와 ruby의 연동을 위한 웹서버 설정은 나를 더 갑갑하게 했다. 내게 친숙한 python 으로 어케 좀 해 볼수 없을까 해서 django 를 알아보니 우부툰에 마침 패키징 되어 있어서 쉽게 설정을 마쳤다. 개인 프로젝트에 굳이 framework 을 사용할 필요가 있을까 했지만, 공부하는 셈 치고 이왕이면 처음부터 체계적으로 작성해 나가는게 나을 것 같았다. django 메인 페이지에 적혀 있는 DRY(Don't Repeat Yourself) 처럼, 폼 만들고, 예외처리 스크립트 넣고 하는 반복 작업을 하느니 차라리 그 시간에 다른 공부를 하는게 낫다 생각했다. 물론 이 framework 을 공부하는 시간 또한 못잖겠지만, 한번 알아두면 좋지 않은가.

여기서는 django를 우분투(Hardy) 상에서 apache2, mod_python 으로 설치 하는 것에 대해 간략한 설명을 한다.

$ sudo apt-get install apache2-mpm-prefork
$ sudo apt-get install libapache2-mod-python
$ sudo apt-get install python-django

주의할 것은 apache2 패키지를 설치할때 기본적으로 설치 되는 패키지는 apache2-mpm-worker  이다. mod_python 과 사용하기 위해서는 apache2-mpm-prefork 패키지를 설치해야 한다(아래 reference 1 참고). libapache2-mod-python 패키지를 설치할때 의존성에 의해 apache2-mpm-worker 패키지를 지우고 apache2-mpm-prefork 패키지로 재 설치 되긴 하지만, 혹시 몰라서 적는다

이렇게 하면 django 패키지가 설치 됐다. 제대로 설치 되었는지 궁금할텐데, 프로젝트 디렉토리 설정을 해서 확인을 해보자.

우분투의 apache2 디렉토리 구성은 이렇다.

/etc/apache2 아래에 설정이 들어 있다.
/var/www 여기는 웹서버의 루트 디렉토리이다.

/var/www/yogy 디렉토리를 프로젝트 디렉토리로 해서 http://localhost/yogy 를 호출해 보도록 하겠다.

<Location "/yogy/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE yogy.settings
    PythonPath "['/var/www'] + sys.path"
    PythonDebug On
</Location>

이 내용을 /etc/apache2/httpd.conf 안에 넣는다.

Location "/yogy/"
SetEnv DJANGO_SETTINGS_MODULE yogy.settings
PythonPath "['/var/www'] + sys.path"

이 세 줄이 중요하다.
Location 은 프로젝트의 URI를 지정하는 것이고 디렉토리를 지칭하는 것이 아니다. 따라서 파일 시스템상의 위치는 /var/www/yogy 가 되겠다.
다음으로 yogy.settings 는 yogy 프로젝트에서 settings.py 파일을 설정 정의 파일로 사용한다는 것이다.
마지막은 python 경로 지정을 해준다. 기본 시스템 경로에 웹서버의 루트의 경로를 추가해서 웹서버 루트 디렉토리에 아래에 있는 우리의 파이썬 프로젝트 모듈들을 로드 할 수 있게 한다.

django 공식 홈의 How To use Django with mod_python 문서에는 여기까지만 나와 있어서 처음엔 저 yogy.settings 를 어떻게 하라는건지 막막했다. 직접 yogy 디렉토리에 settings.py 빈 파일도 만들어 보고 했는데 에러 메시지만 출력하고 동작하지 않는다. 약간의 삽질을 하다 보니 관리 프로그램이 있었다. (아래 reference 2 참고)

$ whereis django-admin
django-admin: /usr/bin/django-admin


해 보면 /usr/bin/django-admin 이 있음을 알 수 있을 것이다.

그냥 실행해 보면 여러가지 옵션이 나오는데 그 중에 startproject 가 있다.

$ cd /var/www
$ django-admin startproject yogy


이렇게 실행하면 yogy 디렉토리를 만들고 그 안에 몇가지 스켈레톤 파일들을 복사해 준다. 거기에 settings.py 도 발견 할 수 있을 것이다.

이제 브라우저에서 http://localhost/yogy 를 열어보자.
It worked! 가 출력되는 페이지를 볼 수 있을 것이다.

이제  django 로 멋진 사이트를 만들기만 하면 된다!!!

이 외 각 언어별 추천할 만한 framework 을 적어둔다
Spring http://www.springframework.org/   java
Ruby on Rails http://www.rubyonrails.org/ ruby
TurboGears http://www.turbogears.org/ python
Cake http://www.cakephp.org/ php


reference :
1. http://www.djangoproject.com/documentation/0.96/modpython/ mod_python 설정에 관한 페이지다.
우분투에 패키징 되어 있는 django 는 0.96 버전이다. 최신 버전을 사용한다면 http://www.djangoproject.com/documentation/modpython/ 를 참고한다.
2. http://www.djangoproject.com/documentation/install/ 여기에는 django-admin 프로그램에 관한 내용이 언급이 되어 있다. 우분투를 사용한다면 apt-get 만으로 충분하지만, 설치 관련 내용이 궁금하다면 이 페이지를 참고 한다.
반응형

'Python' 카테고리의 다른 글

img2py wxPython에서 이미지를 파일에 포함하기  (0) 2008.12.03
트레이 아이콘  (0) 2008.11.25
Frame, Panel  (0) 2008.11.25
Posted by Real_G