[STEP I. Package 준비]
1. Subversion 접속후 관련된 Application의 Version Check
1)(Apache version 확인) http://subversion.tigris.org 에서 WindowsBinary 접속 -> 지원가능한 Apache Version 확인 - 현재는 2.2 version 사용 가능
2)(python version 확인 - 2.5) 원하는 Apache Version을 클릭하여 python binding 파일의 Version을 확인
=> subversion Apache용 Binary & python Binding 용 Binary Download
2. http://apache.org에 접속하여 HTTP Server선택하여 1.1)에서 확인한 version(2.2)의 apache binary Download
=> localhost로 접속은 되는데, IP로 접속이 안된다. 왜그럴까???
어쩔수 없이 근사모(www.apmsetup.com)에 접속하여 apmset6.0을 다운 받아 설치하였다. apache버전을 확인하고 다운로드하여야 한다.
3. http://www.python.org 에 접속하여 1.2) 에서 확인한 version(2.5.4)의 python binary Download
4. http://www.modpython.org 에 접속하여 apache와 python의 version을 지원하는 binary Download
5. http://trac.edgewall.org 에 접속하여 최신버전(0.11.2.1)의 TRAC Download
6. http://genshi.edgewall.org 에 접속하여 최신버전(0.5.1)의 바이너리 Download
7. http://peak.telecommunity.com 에 접속하여 setuptools인 ez_setup.py Download
8. http://initd.org에 접속하여 pysqlite의 최신 버전(2.4.1)중 python의 version과 동일한 Binary download
9. http://sourceforge.net/projects/gnuwin32 에서 enscript를 Download
[STEP II. Package 설치]
1. Apache 설치 + WEBDav 설치
1) 다운로드 받은 apm_setup.exe를 설치한다.
2) conf 를 설정하여 webdav를 사용하기 위한 환경 설정을 한다.
>> httpd.conf
사용 모듈 선언 (주석 # 제거)
...
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
WEBDav 환경 설정 파일 include (주석 처리 되어있는 부분을 해제한다.)
Include conf/extra/httpd-dav.conf
>> httpd-dav.conf
digest type을 Basic Type으로 변경한다.
DavLockDB "C:/apps/server/Apache2.2/var/DavLock"
Alias /uploads "C:/apps/server/Apache2.2/uploads"
<Directory "C:/apps/server/Apache2.2/uploads">
Dav On
Order Allow,Deny
Allow from all
AuthType Basic
AuthName DAV-upload
AuthUserFile "C:/apps/server/Apache2.2/htpasswd"
# AuthDigestProvider file
<LimitExcept GET OPTIONS>
require valid-user
</LimitExcept>
</Directory>
cf) Apache와 IIS를 동시에 사용하기
http://www.microsoft.com/downloads/details.aspx?familyid=6EC50B78-8BE1-4E81-B3BE-4E7AC4F0912D&displaylang=en 다운로드 및 설치후
>> httpcfg.exe set iplistem -i <IP_address>
목록조회 >> httpcfg query iplistem
목록에서삭제 >> fttpcfg delete iplistem -i <IP_address>
>> net stop http
>> net start http
2. SVN 설치
1) subversion Apache용 Binding Binary 설치 (zip파일을 특정 폴더에 풀기)
2) apache conf 파일에 module을 추가한다.
>> httpd.conf
사용 모듈 추가 선언
...
LoadModule dav_svn_module "C:\apps\server\svn-win32-1.5.4\bin\mod_dav_svn.so"
LoadModule authz_svn_module "C:\apps\server\svn-win32-1.5.4\bin\mod_authz_svn.so"
SVN setting 추가 혹은 setting 파일 Include
Include conf/extra/httpd-svn.conf
>> httpd-svn.conf
SVN Apache 사용 환경 설정
# SVN Repository
<Location /svn>
DAV svn
SVNParentPath "E:\00.repository\subversion"
AuthType Basic
AuthName "SVN Repository"
AuthUserFile "C:\apps\server\Apache2.2\htpasswd"
Require valid-user
</Location>
3. Trac 설치
1) python 설치 (python-2.5.4.msi 실행)
이후 2) ~ 6), 8) package 설치시 선택가능한 Python이 1)에서 설치한 경로와 버전이 맞는지 반듯이 확인하여야 한다.
2) python용 binding svn 설치 (svn-python-1.5.4.win32-py2.5.exe 실행)
3) Genshi 설치 (Genshi-0.5.1.win32-py2.5.exe 실행)
4) python.exe ez_setup.py 을 실행하여 setuptools을 설치
C:\apps\server\Python25\python.exe ez_setup.py
Downloading
http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py2.5.egg
Processing setuptools-0.6c9-py2.5.egg
Copying setuptools-0.6c9-py2.5.egg to c:\apps\server\python25\lib\site-packages
Adding setuptools 0.6c9 to easy-install.pth file
Installing easy_install-script.py script to C:\apps\server\Python25\Scripts
Installing easy_install.exe script to C:\apps\server\Python25\Scripts
Installing easy_install-2.5-script.py script to C:\apps\server\Python25\Scripts
Installing easy_install-2.5.exe script to C:\apps\server\Python25\Scripts
Installed c:\apps\server\python25\lib\site-packages\setuptools-0.6c9-py2.5.egg
Processing dependencies for setuptools==0.6c9
Finished processing dependencies for setuptools==0.6c9
5) mod_python 설치
Apache용 Python 설치 (mod_python-3.3.1.win32-py2.5-Apache2.2.exe 실행)
- 설치중 Apache의 설치 폴더를 물어봄.
6) pysqlite 설치 (pysqlite-2.4.1.win32-py2.5.exe를 실행)
7) Enscript 설치 (enscript-1.6.3-9-bin.exe를 실행)
8) TRAC 설치 (Trac-0.11.2.1.win32.exe를 실행하거나 아래 명령어로 설치)
C:\apps\server\Python25\Scripts\easy_install.exe
http://svn.edgewall.com/repos/trac/trunk
[STEP III. TRAC & SVN 연동 실행]
1. sample SVN 및 Sample TRAC repository 생성
1) SVN repository 생성
C:\apps\server\svn-win32-1.5.4\bin\svnadmin create example
2) TRAC repository 생성
C:\apps\server\Python25\Scripts\trac-admin.exe [trac_repos]\example initenv
Project Name [My Project]> Project Name입력후 엔터
Database connection string [sqlite:db/trac.db]> 그냥 엔터
Repository type [svn]> svn 입력 후 엔터. Repository Type을 물어보는 거다.
Path to repository [/path/to/repos]> TRAC에 연결 시키고 싶은 Repository의 Local Full path를 입력한다.
ex) c:\repos\example
3) TRAC Admin 설정
C:\apps\server\Python25\Scripts\trac-admin.exe [trac_repos]\example permission add [ADMINID] TRAC_ADMIN
2. Apacheconf 파일에 TRAC을 사용하기 위한 환경을 설정한다.
>> httpd.conf
사용 모듈 추가 선언 5)설치시 Apache서버의 Root Path를 제대로 설정하였다면 mod_python.so가 자동으로 apache module에 복사되어 있다.
...
LoadModule python_module modules/mod_python.so
TRAC setting 추가 혹은 setting 파일 Include
Include conf/extra/httpd-trac.conf
>> httpd-trac.conf
TRAC Apache 사용 환경 설정
#TRAC Apatch Configuration
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracUriRoot /trac
PythonOption TracEnvParentDir c:/trac_repos
PythonOption TracLocale English_KOREA
</Location>
<LocationMatch "/trac/[^/]+/login">
AuthType Basic
AuthName "TRAC Repository"
AuthUserFile "C:\apps\server\Apache2.2\htpasswd"
Require valid-user
</LocationMatch>
3. TRAC plugin 설치
각각의 Plugin은 설치후 사용하기 위해 Apache를 새롭게 시작하여야 한다.
1) WebAdminPlugin
i) http://trac-hacks.org/wiki/IniAdminPlugin 에 접속하여 zip파일을 다운로드 한다.
ii) 다운 받은 파일의 압축을 풀고 폴더내의 setup.py를 python명령을 이용하여 설치한다.
C:\apps\server\Python25\python.exe setup.py install
iii) trac-hacks 저장소에서 직접 받아서 설치할 수도 있다.
C:\apps\server\Python25\Scripts\easy_install.exe
http://trac-hacks.org/svn/iniadminplugin/0.11/
iv) TRAC 에 접속하여 login하면 Admin 탭을 볼수 있다.
General\Plugins를 클릭하여 해당 plugin을 클릭하면 Enable 체크 박스가 나온다. 체크하고 Apply changes 클릭
2) AccountManagerPlugin
i) http://trac-hacks.org/wiki/AccountManagerPlugin 에 접속하여 zip파일을 다운로드 한다.
ii) 다운 받은 파일의 압축을 풀고 폴더내의 setup.py를 python명령을 이용하여 설치한다.
C:\apps\server\Python25\python.exe setup.py install
iii) trac-hacks 저장소에서 직접 받아서 설치할 수도 있다.
iv) TRAC 에 접속하여 login하면 Admin 탭을 볼수 있다.
General\Plugins를 클릭하여 해당 plugin을 클릭하면 꽤 많은 체크 박스가 나온다. 상황에 따라 선택하여 사용하면 된다. 우선은 아래와 같이 체크하고 Apply changes 클릭.
우선 여기까지하면 SVN+TRAC을 설치하기 위한 준비는 끝이 났다. 휴~~~~ 힘들었다. 켁켁켁...
[Extended STEP. ViewVC 설치]
참조 페이지 : http://www.pyrasis.com/main/SubversionWithViewVCForWindows
1. ViewVC 다운로드 : http://viewvc.tigris.org 에 접속하여 viewvc를 Download 한다.
2. http://sourceforge.net/project/showfiles.php?group_id=78018 에서 Python Extensions for Windows를 다운로드 한다. 해당 python버전을 맞추어야 한다. 더블클릭하여 설치한다.
3. http://sourceforge.net/projects/gnuwin32 에서 diffutils 및sed 를 Download 및 설치한다.
4. 다운로드한 viewvc의 압축을 풀어 특정 폴더에 카피한 후 install한다.
1)받은 viewvc-1.0.3.zip를 C:\temp에 압축을 해제합니다.
2) python을 이용하여 install 한다.
C:\temp\viewvc\viewvc>C:\apps\server\Python25\python.exe viewvc-install
3) Apache의 conf를 설정한다.
>> httpd.conf
사용 모듈 선언 (주석 # 제거)
...
LoadModule dav_module modules/mod_python.so
viewvc 환경 설정 파일 include (주석 처리 되어있는 부분을 해제한다.)
Include conf/extra/httpd-viewvc.conf
>> httpd-viewvc.conf
ScriptAlias /viewvc "C:/Program Files/viewvc-1.0.3/bin/mod_python/viewvc.py"
<Location /viewvc>
AddHandler mod_python .py
PythonPath "[r'C:\\Program Files\\viewvc-1.0.3\\bin\\mod_python']+sys.path"
PythonHandler handler
PythonDebug On
AddDefaultCharset UTF-8
Options +Includes
</Location>
4) viewvc의 viewvc.conf를 수정한다.
[general]
# 저장소의 최상위 디렉토리를 설정합니다.
root_parents = c:\repos : svn
# default_root는 주석 처리합니다.
#default_root = cvs
# Subversion이 설치된 경로
svn_path = C:\Program Files\Subversion\bin
[options]
# URL로 저장소를 구분합니다.
# 이것을 0으로 하면 위의 default_root에서 기본 저장소를 지정해줘야 합니다.
root_as_url_component = 1
# UTC를 사용하지 않고 대한민국 표준시를 사용합니다.
use_localtime = 1
# enscript를 사용하도록 설정함
use_enscript = 1
enscript_path = c:\Program Files\GnuWin32\Bin
5) ViewVC의 handler.py 파일의 apache.import_module 부분을 다음과 같이 수정합니다. 이것을 수정하지 않으면 mod_python에서 모듈을 찾지 못하여 ViewVC를 실행할 수 없습니다.
def handler(req):
path, module_name = os.path.split(req.filename)
module_name, module_ext = os.path.splitext(module_name)
try:
#module = apache.import_module(module_name, path=[path])
module = apache.import_module(module_name, path)
except ImportError:
raise apache.SERVER_RETURN, apache.HTTP_NOT_FOUND
req.add_common_vars()
module.index(req)
return apache.OK
6) 한글 설정
ViewVC는 기본적으로 로그는 UTF-8로 표시해주지만 소스코드는 변환없이 그대로 출력합니다. 그래서 윈도우에서 저장한 소스파일은 cp949(euc-kr)이기 때문에 브라우저에서는 깨져서 출력됩니다. 브라우저의 인코딩을 euc-kr로 바꾸면 잘 보이지만 UTF-8로 인코딩된 로그가 깨져서 볼 수 없게 됩니다.
그래서 소스코드도 UTF-8로 변환하도록 ViewVC를 수정해 줘야 합니다. use_localtime을 1로 설정했을 경우 나오는 "대한민국 표준시"도 깨지지 않도록 UTF-8로 변환합니다.
수정 사항은 아래 1.0.3 기준의 첨부파일 참조
수정 py 파일
handler.py,
viewvc.py,
blame.py