2008년 3월 13일 목요일

Windows에 아파치 + 톰캣 + modpython 적용하기

보통 개발시 아파치 + 톰캣, 또는 아파치 + modpython을 매번 사용해 왔는데, 특별히 정리해 놓은 문서가 없어 정리를 해 보았다.













1. 아파치 설치

아파치 다운로드
아파치 설치 (설치디렉토리예: C:/apache2)
2. 톰캣설치

톰캣 다운로드
톰캣 설치 (설치디렉토리 예: C:/tomcat)
3. 아파치에서 mod_jk2를 이용하여 톰캣 연동하기

modjk2 모듈다운로드 - mod_jk2
아파치설정 (c:/apache2/conf/httpd.conf)

LoadModule jk2_module modules/mod_jk2.so

아파치설정 (c:/apache2/conf/workers2.properties) - 없다면 생성하자.

[shm]
info=Scoreboard. Requried for reconfiguration and status with multiprocess servers.
file=anon

# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1

# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009

# Uri mapping
[uri:10.0.0.10/*.jsp]
worker=ajp13:localhost:8009

[uri:pey.avis.com/*.jsp]
worker=ajp13:localhost:8009

[uri:pey.automs.com/*.jsp]
worker=ajp13:localhost:8009
위 내용을 보면 알겠지만, uri에 설정한 URL(위:*.jsp)로 request가 들어올 경우 8009포트(톰캣)로 request를 전달하고 있다.


톰캣설정 (c:/tomcat/conf/server.xml)


enableLookups="false" redirectPort="8443" debug="0"
protocol="AJP/1.3" URIEncoding="KSC5601" />
8009포트에 AJP/1.3이라는 프로토콜을 사용하여 request를 처리한다. 요새 나오는 톰캣버전의 server.xml에는 위 사항이 디폴트로 적용되어 있으니 빠져있지만 않다면 특별히 수정할 사항은 없다. 단 GET방식의 request일 경우 URIEncoding에 KSC5601을 설정해 주어야 한글처리가 가능하다는 점을 유의해야 한다.

4. 가상 호스트 설정

한 PC에서 여러개의 웹싸이트를 개발하고 있다면 가상호스트를 설정하여 사용하면 편리하다. 아파치, 톰캣 설정을 반복하는짓을 그만둘수 있다.


hosts(C:/WINNT/system32/drivers/etc/hosts)파일 수정
필자의 hosts파일 예

127.0.0.1 localhost
127.0.0.1 pey.avis.com
127.0.0.1 pey.automs.com
127.0.0.1 pey.dev.com
127.0.0.1 pey.note.com

아파치 설정(c:/apache2/conf/httpd.conf)
필자의 Virtual Host예

NameVirtualHost *:80


ServerName pey.avis.com
ServerAlias www
ServerAlias localhost
ServerAdmin pey@tdd.or.kr
DocumentRoot "d:/AVIS/avis/httphome/avis/"
ErrorLog logs/avis-error.log
CustomLog logs/avis-access.log common


JkUriSet worker ajp13:localhost:8009




ServerName pey.automs.com
ServerAdmin pey@tdd.or.kr
DocumentRoot "d:/AVIS/automs/"
ErrorLog logs/automs-error.log
CustomLog logs/automs-access.log common


JkUriSet worker ajp13:localhost:8009




ServerName pey.dev.com
ServerAdmin pey@tdd.or.kr
DocumentRoot "d:/por/"
ErrorLog logs/por-error.log
CustomLog logs/por-access.log common



ServerName pey.note.com
ServerAdmin pey@tdd.or.kr
DocumentRoot "d:/note/"
ErrorLog logs/por-error.log
CustomLog logs/por-access.log common


톰캣설정 (c:/tomcat/conf/server.xml)
필자의 Host설정 예


localhost
www
10.0.0.10





5. mod_python 적용


mod_python download (http://www.modpython.org)
mod_python 설치 (win32용 프로그램으로 인스톨)
아파치 설정 (c:/apache2/conf/httpd.conf)

LoadModule python_module modules/mod_python.so


Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all

AddHandler mod_python .py
PythonHandler mod_python.cgihandler
PythonDebug On



Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all

AddHandler mod_python .py
PythonHandler mod_python.cgihandler
PythonDebug On

위에서 설정한 가상호스트를 modpython cgihandler와 연결시킨 예제이다.

댓글 없음: