윈도우즈와 python2.5 에서 할려니까 많은 제약 사항이 있었다. 리눅스의 경우, 이미 나와 있는 문서들만으로 가능할거라고 생각한다.
설치환경은 windows xp + sp2 와 python2.5 에서 실험했다.
아파치 설치는 이 블로그에 설치하는 법을 적어 놓았다. 그대로 따라 하면 될 것이다. 그리고 Django 의 경우 http://www.python.or.kr/pykug/Django 을 읽어보기 바란다. 내가 조금 고쳐났다. 여기 있는 파일을 그냥 이용하면 된다.
Django 는 manage.py runserver 라는 명령과 옵션을 통해 테스트 환경을 제공한다. http://www.djangoproject.com/documentation/ 여기에 따르면 이것은 성능이 낮기 때문에 그냥 테스트용으로 사용하라고 한다. 실질적으로 사용하려면 mod_python 을 사용해야 한다.
mod_python ( http://www.modpython.org/ )이란 아파치에서 파이썬을 이용할 수 있는 많은 방법을 제공하는 툴(?)이다. 보통 이 사이트에서 구할 수 있으나 python2.5 와 윈도우즈를 사용 한다면 http://nicolas.lehuen.com/download/mod_python/ 에서 자기 버전에 맞는 것을 구하기 바란다. (이것때문에 고생을 많이했다. ) (Visaul Stdio 7.0 버전이 있다면 mod_python 싸이트에서 유닉스 소스를 다운받아 컴파일 할 수 있다. dist 폴더를 이용하면 가능하다. 여기서 제공하는 파일도 그렇게 만들었을 것이다.)
mod_python 설정법은 그 사이트 Manual 을 따라하면 된다. 어려운 편이 아니다. 내경우 http.conf 파일을 다음과 같이 수정했다.
LoadModule python_module "C:/tools/apm/apache/modules/mod_python.so"
# 디렉토리 설정
UserDir "C:/tools/apm/www/*"
<Directory "C:/tools/apm/www/test">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
</Directory>
주의 할 점은 Directory 에 * 가 들어가지 않고 정확한 경로를 표시해야 한다. 이것때문에 헤멨다. 자주 이야기 하지만 저 상태로 실제로 서비스 하기에는 문제가 있을 것 같다. 너무 공개한 것 같다. 여기에 접근하기 위해서는 http://localhost:8080/~test/mptest.py 로 접근하면 된다. UserDir 을 사용하니까 조금 복잡해 보이는데 다른 디렉토리를 참조하려면 이와 유사하게 디렉토리를 정해 주면 된다. 그리고 지정한 디렉토리에 mptest.py 파일을 저장해야 한다.
----------- mptest.py ------------------
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!")
return apache.OK
-----------------------------------------
세심히 봐야 할 것은 설정부분의 PythonHandler mptest 라는 부분이다. 파일 하나 추가해줄 때마다 PythonHandler 파일이름 을 해주어야 한다. 이 방법이 가장 빠른 방법으로 mod_python 을 사용하는 방법이다.
mod_python 에서는 여러가지 방법으로 파이썬을 사용하는 방법을 제공하고 있다. 그 기능을 더 이용해서 Django 에서도 사용가능하다고 생각하면 쉬울 것 같다. 이게 Django 을 설정하자. http.conf 에서 다음과 같이 하면된다.
-------------------------------
<Location "/mysite/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonPath "['C:/tools/Python/work'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonDebug On
</Location>
--------------------------------
Location 을 이용했다. 이 것은 url 주소를 http://localhost:8080/mysite/ 와 같이 작동할 때 이용하겠다고 설정하는 것이다. 내 경우 C:\tools\Python\work 폴더에 mysite 라는 폴더가 있고 이 안에 Django 를 통해 만든 파일들이 있다.
당연한 말이지만 이게 작동하려면 아파치기 작동한 상태이고 http://www.djangoproject.com/documentation/ 을 보면서 mysite 라는 폴더를 C:\tools\Python\work 밑에 만들어 둘 때이다. 당연히 documentation 보면서 따라하지 않았다면 안 되는게 당연하다.
설치환경은 windows xp + sp2 와 python2.5 에서 실험했다.
아파치 설치는 이 블로그에 설치하는 법을 적어 놓았다. 그대로 따라 하면 될 것이다. 그리고 Django 의 경우 http://www.python.or.kr/pykug/Django 을 읽어보기 바란다. 내가 조금 고쳐났다. 여기 있는 파일을 그냥 이용하면 된다.
Django 는 manage.py runserver 라는 명령과 옵션을 통해 테스트 환경을 제공한다. http://www.djangoproject.com/documentation/ 여기에 따르면 이것은 성능이 낮기 때문에 그냥 테스트용으로 사용하라고 한다. 실질적으로 사용하려면 mod_python 을 사용해야 한다.
mod_python ( http://www.modpython.org/ )이란 아파치에서 파이썬을 이용할 수 있는 많은 방법을 제공하는 툴(?)이다. 보통 이 사이트에서 구할 수 있으나 python2.5 와 윈도우즈를 사용 한다면 http://nicolas.lehuen.com/download/mod_python/ 에서 자기 버전에 맞는 것을 구하기 바란다. (이것때문에 고생을 많이했다. ) (Visaul Stdio 7.0 버전이 있다면 mod_python 싸이트에서 유닉스 소스를 다운받아 컴파일 할 수 있다. dist 폴더를 이용하면 가능하다. 여기서 제공하는 파일도 그렇게 만들었을 것이다.)
mod_python 설정법은 그 사이트 Manual 을 따라하면 된다. 어려운 편이 아니다. 내경우 http.conf 파일을 다음과 같이 수정했다.
LoadModule python_module "C:/tools/apm/apache/modules/mod_python.so"
# 디렉토리 설정
UserDir "C:/tools/apm/www/*"
<Directory "C:/tools/apm/www/test">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
</Directory>
주의 할 점은 Directory 에 * 가 들어가지 않고 정확한 경로를 표시해야 한다. 이것때문에 헤멨다. 자주 이야기 하지만 저 상태로 실제로 서비스 하기에는 문제가 있을 것 같다. 너무 공개한 것 같다. 여기에 접근하기 위해서는 http://localhost:8080/~test/mptest.py 로 접근하면 된다. UserDir 을 사용하니까 조금 복잡해 보이는데 다른 디렉토리를 참조하려면 이와 유사하게 디렉토리를 정해 주면 된다. 그리고 지정한 디렉토리에 mptest.py 파일을 저장해야 한다.
----------- mptest.py ------------------
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!")
return apache.OK
-----------------------------------------
세심히 봐야 할 것은 설정부분의 PythonHandler mptest 라는 부분이다. 파일 하나 추가해줄 때마다 PythonHandler 파일이름 을 해주어야 한다. 이 방법이 가장 빠른 방법으로 mod_python 을 사용하는 방법이다.
mod_python 에서는 여러가지 방법으로 파이썬을 사용하는 방법을 제공하고 있다. 그 기능을 더 이용해서 Django 에서도 사용가능하다고 생각하면 쉬울 것 같다. 이게 Django 을 설정하자. http.conf 에서 다음과 같이 하면된다.
-------------------------------
<Location "/mysite/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonPath "['C:/tools/Python/work'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonDebug On
</Location>
--------------------------------
Location 을 이용했다. 이 것은 url 주소를 http://localhost:8080/mysite/ 와 같이 작동할 때 이용하겠다고 설정하는 것이다. 내 경우 C:\tools\Python\work 폴더에 mysite 라는 폴더가 있고 이 안에 Django 를 통해 만든 파일들이 있다.
당연한 말이지만 이게 작동하려면 아파치기 작동한 상태이고 http://www.djangoproject.com/documentation/ 을 보면서 mysite 라는 폴더를 C:\tools\Python\work 밑에 만들어 둘 때이다. 당연히 documentation 보면서 따라하지 않았다면 안 되는게 당연하다.