티스토리 뷰

팀 형상관리 버그추적 한세트 설치하기.

설치한 프로그램 버전일람
Apache 2.2.4
Python 2.5
Subversion 1.4.4
Trac 0.11Dev


현재(2007/8/25)까지 트랙 안정버전은 0.10.4.
지난번 트랙 설치할때는 제한사항이 있어서 Apache2.0.59에 Python2.4를 깔아써야 되는 제한이 있었는데 이번 도큐먼트 서버에 새로 설치하려고 다시 홈피를 들려보니 새개발버전이 나온것을 계기로 과감하게 버젼업설치를 감행했다.
(클리어 실버였던가? 잘 기억은 안나는데 아파치 2.2 와 무언가가 안맞았는데...음.. ㅡㅡ  뭐 소스를 컴파일해서 패키지를 만드는 방법도 있겠지만 실력도, 열정도 턱없이 모자르다는.)

참고적으로 트랙 0.11 부터는 ClearSilver를 사용하지 않고 Genshi라는 파이선 템플릿 엔진을 사용한다.(참고로 일본어로 원사(原糸)를 뜻한다. 개발자중 일본사람이? )
물론 설치중 클리어 실버대신 Genshi가 등장하는 부분이 있으므로 한번쯤 설치한 경험이 있다면 다른 부분을 느낄수 있을것이다.


1. Apache 설치

아래 홈페이지에서 msi파일을 받아 설치한다.
설치 매뉴얼은 인터넷에 이미 널리 퍼져 있고, 기본 옵션으로도 충분하므로 설명은 생략.

http://httpd.apache.org/download.cgi
Apache Download


2. Python 설치

역시 특별히 어려운점은 없으므로 설명은 생략.
기본 옵션으로 충분하다.

http://www.python.org/download/
Python Download

설치가 끝난뒤 Python을 어디에서든 실행시킬수 있게 Python 설치 디렉토리를 시스템 패스에 걸어두는것을 추천한다.


3. Mod_Python 설치

Apache와 Python을 연결해주는 모듈을 설치한다.
설치시 나오는 메시지대로 테스트까지 가능하다. 간단한 파이선 스크립트로 실행결과를 확인하는것인데 흥미있는 사람은 공부해 보는것도 재미있을듯.

http://httpd.apache.org/modules/python-download.cgi
사용자 삽입 이미지
사용자 삽입 이미지
링크를 눌러 나오는 화면에서 버젼에 맞는 설치화일을 내려 받는다.
(위의 경우는 Python2.5, Apache2.2 를 선택)

설치를 실행하면 자동으로 시스템 레지스트리에서 Python이 설치된 폴더를 찾아서 패키지를 설치한다.
%PythonInstallDirectory%\Lib\site-pckages\

설치 중간에 아파치 설치 디렉토리를 묻는 질문이 나오면 아파치 설치 디렉토리를 찾아 선택해 준다. 보통의 경우

C:\Program Files\Apache Software Foundation\Apache2.2

에 설치되어 있을것이다.


설치가 끝나고 나면 마지막 메세지 대로 Apache의 httpd.conf화일을 열어서 다음을 추가한다.
LoadModule python_module modules/mod_python.so

Apache 재기동후 다음 URL을 참고로 설치 테스트를 한다.
http://www.modpython.org/live/current/doc-html/inst-testing.html
(영어 알레르기인 사람들을 위해 다음 포스팅에 해석을 준비해 볼까도 한다 믿거나 말거나!)

4. Subversion 설치

버젼관리 도구인 Subversion 을 설치한다.
다음의 URL로부터 설치화일을 다운로드 받는다.

http://subversion.tigris.org/project_packages.html
사용자 삽입 이미지
사용자 삽입 이미지


Python용 연결모듈, Subversion본체 두가지를 다운 받는다.

본체의 압축화일을 설치하고 싶은 디렉토리에 푼뒤 Path에 bin디렉토리를 추가해준다.
%SubversionInstallDirectory%\bin

커맨드 프롬프트를 열고 svn 을 실행시켜본다.
출력 메세지가 깨어져 나오는 경우 다음 환경변수를 추가해 준다.
APR_ICONV_PATH=%SubversionInstallDirectory%\iconv
압축화일로 되어있는 1.4.4 를 받았을 경우 위의 디렉토리가 비어있는 경우가 있다.
이런때에는 Apache에 있는 디렉토리를 선언해주어도 잘 동작한다.
APR_ICONV_PATH=%ApacheInstallDirectory%\bin\iconv

실지로 2.0.x 버전 대응과 2.2.x 대응판의 차이점은 bin디렉토리 내의 dll들로 보인다.
(Apache Portable Runtime들의 버전이 윗버전들로 되어있다 0.9x -> 1.1x,1.2x)
2.2.x대응판은 설치화일이 제공되지 않는 이유로 레지스트리나 자동 설정이 부족한데 설치화일을 실행시켜 설치한뒤 압축화일의 내용을 덮어쓰기(bin,iconv 두개의 폴더로 충분하다.) 하는 방법도 잘 동작한다.
실험정신이 투철한 분들을 위해 추천하는 방법의 하나.
대신 설치 중간에 있는 아파치 자동 설정부분의 체크는 반드시 해제하도록 하자.

bin디렉토리 내의 so파일 두개를 %ApacheInstallDirectory%\modules 디렉토리에 복사해 준다.
mod_authzsvn.so
mod_dav_svn.so

httpd.conf 수정.
① 다음의 줄을 추가한다.
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so


② 다음 두줄의 코멘트를해제 한다.
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so

Apache를 재기동해서 설정화일을 검사한다.


Python 과 Subversion연결용 모듈을 설치한다.

다운로드 받은 svn-python-xxxx.exe를 실행시켜 설치한다.
자동으로 Python설치 디렉토리를 찾아 설치가 진행된다.


6. Setup tools 설치

파이선용 패키지 설치 자동화 툴을 설치한다.
인터넷을 통한 다운로드 설치, Egg파일(파이선 프로그램의 설치용 패키지) 생성을 도와준다.

http://peak.telecommunity.com/DevCenter/setuptools
다른이름으로 저장을 눌러 파일을 저장할것.
사용자 삽입 이미지

다운받은 파일을 실행한다.
위에서 Python을 시스템 패스에 걸어둔 경우 커맨트 프롬프트에서 그냥 다음을 타이핑 하거나, 파일탐색기에서 더블클릭을 한다.
python ez_setup.py
python에 익숙한 사람인경우 저지를수도 있는? 실수로 파이선 설치 디렉토리의 어딘가(Scripts등..)에 위의 ez_setup.py 파일을 복사해두고서 그곳에서 실행시키게 되면 에러가 난다. 반드시 무관계 폴더에 복사해 넣고서 실행하도록 하자.(사실 본인도 아는척? 하다가 큰코 다쳤음. 하.하.)

Python의 Scripts디렉토리를 시스템 패스에 걸어준다.
안을 살펴보면 easy_install.exe파일이 생성되어 있을 것이다.
지금 설치한 easy_install과 뒤에 설치될 trac-admin 등의 실행이 간편해 진다. 등록해 두자.


7. Genshi 설치

템플릿 엔진을 설치한다. 설치하지 않았을경우 다음의 트랙 설치시 자동으로 다운로드 받기도 한다.
그러나 일부러 setuptools를 설치했는데 한번쯤 써봐야 하지 않겠는가?

easy_install Genshi
커맨드 프롬프트에서 실행하면 현재의 최신 버전을 다운로드 받아 설치가 진행된다.
Searching for Genshi
Reading http://cheeseshop.python.org/pypi/Genshi/
Reading http://genshi.edgewall.org/
Reading http://genshi.edgewall.org/wiki/Download
Reading http://cheeseshop.python.org/pypi/Genshi/0.4.4
Best match: Genshi 0.4.4
Downloading http://ftp.edgewall.com/pub/genshi/Genshi-0.4.4-py2.5.egg
Processing Genshi-0.4.4-py2.5.egg
Moving Genshi-0.4.4-py2.5.egg to c:\python25\lib\site-packages
Adding Genshi 0.4.4 to easy-install.pth file

Installed c:\python25\lib\site-packages\genshi-0.4.4-py2.5.egg
Processing dependencies for Genshi
Finished processing dependencies for Genshi


홈페이지는 여기
http://genshi.edgewall.org/


8. Trac 설치

트랙의 설치는 먼저 Subversion을 이용해서 레포지터리로부터 파이선 소스를 내려받는다.
소스를 저장할 디렉토리를 정한뒤 이동하여 다음의 명령을 실행시킨다.
svn checkout http://svn.edgewall.org/repos/trac/trunk


로컬에 체크아웃이 되는 파일이 주욱 나열된뒤 마지막에 리비젼 xxx을 체크아웃 했다는 메시지가 나오고 나면 trunk폴더로 이동한다.
폴더 안의 setup.py를 실행시키면 자동으로 인스톨이 진행된다.
본인은 trac-temp라는 폴더에서 진행했다.

C:\trac-temp>svn checkout http://svn.edgewall.org/repos/trac/trunk
A trunk\...
...중략...
A    trunk\COPYING
 U   trunk
リビジョン 5970 をチェックアウトしました。

C:\trac-temp>cd trunk

C:\trac-temp\trunk>dir/w
 ドライブ C のボリューム ラベルは WinXPJpn です
 ボリューム シリアル番号は CCA6-16B6 です

 C:\trac-temp\trunk のディレクトリ

[.]                 [..]                AUTHORS             [cgi-bin]
ChangeLog           [contrib]           COPYING             [doc]
INSTALL             README              RELEASE             [sample-plugins]
setup.cfg           setup.py            setup_wininst.bmp   THANKS
[trac]              UPGRADE             [wiki-macros]
              11 個のファイル              84,885 バイト
               8 個のディレクトリ  25,976,086,528 バイトの空き領域

C:\trac-temp\trunk>python setup.py install
...중략...
creating 'dist\Trac-0.11dev_r5963-py2.5.egg' and adding 'build\bdist.win32\egg'
to it
removing 'build\bdist.win32\egg' (and everything under it)
Processing Trac-0.11dev_r5963-py2.5.egg
creating c:\python25\lib\site-packages\Trac-0.11dev_r5963-py2.5.egg
Extracting Trac-0.11dev_r5963-py2.5.egg to c:\python25\lib\site-packages
Adding Trac 0.11dev-r5963 to easy-install.pth file
Installing trac-admin-script.py script to C:\Python25\Scripts
Installing trac-admin.exe script to C:\Python25\Scripts
Installing tracd-script.py script to C:\Python25\Scripts
Installing tracd.exe script to C:\Python25\Scripts

Installed c:\python25\lib\site-packages\trac-0.11dev_r5963-py2.5.egg
Processing dependencies for Trac==0.11dev-r5963
Finished processing dependencies for Trac==0.11dev-r5963

9. Repository 및 Trac 프로젝트 작성

Subversion용 레포지터리를 작성한다.
현재 디렉토리에 생성하므로 리포지터리용 폴더로 이동해서 실행할것.
svnadmin create %프로젝트용디렉토리명%
설정한  디렉토리가 생성됬나 확인한다.

Trac용 프로젝트를 생성한다.
Subversion과는 별도의 디렉토리가 필요하므로 새로 생성하는것을 잊지 말자.
생성한 디렉토리의 상위 디렉토리에서 다음의 명령어를 실행한다.
trac-admin ./%생성한디렉토리명%
커맨드 프롬프트가 인터프리터 형식으로 변환된다.
프로젝트를 생성하여보자.

C:\Repos\trac>trac-admin ./TestPrj
Welcome to trac-admin 0.11dev-r5963
Interactive Trac administration console.
Copyright (c) 2003-2007 Edgewall Software

Type:  '?' or 'help' for help on commands.

Trac [C:\Repos\trac\WebDesk]>initenv
Creating a new Trac environment at C:\Repos\trac\TestPrj

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

 Please enter the name of your project.
 This name will be used in page titles and descriptions.

Project Name [My Project]>Test Project
 Please specify the connection string for the database to use.
 By default, a local SQLite database is created in the environment
 directory. It is also possible to use an already existing
 PostgreSQL database (check the Trac documentation for the exact
 connection string syntax).

Database connection string [sqlite:db/trac.db]>(그냥 엔터)

 Please specify the type of version control system,
 By default, it will be svn.

 If you don't want to use Trac with version control integration,
 choose the default here and don't specify a repository directory.
 in the next question.

Repository type [svn]>(그냥 엔터)

 Please specify the absolute path to the version control
 repository, or leave it blank to use Trac without a repository.
 You can also set the repository location later.

Path to repository [/path/to/repos]> C:\Repos\svn\TestPrj

Creating and Initializing Project
 Installing default wiki pages
  CamelCase imported from C:\Python25\lib\site-packages\trac-0.11dev_r5963-py2.5
.egg\trac\wiki\default-pages\CamelCase
  InterMapTxt imported from
... 중략 ...
  WikiRestructuredTextLinks imported from C:\Python25\lib\site-packages\trac-0.1
1dev_r5963-py2.5.egg\trac\wiki\default-pages\WikiRestructuredTextLinks
  WikiStart imported from C:\Python25\lib\site-packages\trac-0.11dev_r5963-py2.5
.egg\trac\wiki\default-pages\WikiStart
 Indexing repository

---------------------------------------------------------------------
Project environment for 'WebDesk' created.

You may now configure the environment by editing the file:

  C:\Repos\trac\WebDesk\conf\trac.ini

If you'd like to take this new project environment for a test drive,
try running the Trac standalone web server `tracd`:

  tracd --port 8000 C:\Repos\trac\TestPrj

Then point your browser to http://localhost:8000/WebDesk.
There you can also browse the documentation for your installed
version of Trac, including information on further setup (such as
deploying Trac to a real web server).

The latest documentation can also always be found on the project
website:

  http://trac.edgewall.org/

Congratulations!

Apache 세팅을 하기 전에 위의 녹색부분을 그대로 실행시키면 포트8000번으로 접속해서 Trac테스트가 가능하다
quit을 입력해서 인터프리터 모드에서 빠져나온뒤
도스프롬프트에서
tracd --port 8000 C:\Repos\trac\TestPrj
를 실행시키고
브라우저에서 http://localhost:8000/TestPrj 를 접속해 보자.
트랙의 초기 화면이 보이면 성공!
종료할때는 커맨드 창에서 Ctrl-c를 누르면 정지된다. 당황하지 말자. ^^

10. Apache 설정

httpd.conf화일을 편집해서 Apache를 통해 Trac에 접속해 보도록 하자.

① Apache의 bin 디렉토리에 있는 htpasswd 로 패스워드 화일을 생성한다.
%ApacheInstallDirectory%\bin>htpasswd -c passwd testadmin
Automatically using MD5 format.
New password: *****
Re-type new password: *****
Adding password for user testadmin
생성된 passwd파일을 사용할 디렉토리로 이동하거나 복사한다.
본인은 리포지터리에 conf폴더를 만들고 복사해 넣었다.

② httpd.conf 화일에 다음을 추가해 준다.

<Location /TestPrj>
   SetHandler mod_python
   PythonInterpreter main_interpreter
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnv C:/Repos/trac/TestPrj <-- 트랙 폴더
   PythonOption TracUriRoot /TestPrj <-- 트랙의 루트. 로케이션과 일치하면 무난인가?
   PythonOption TracLocale "english_JAPAN"
</Location>

<Location /TestPrj/login>
   AuthType Basic
   AuthName "TestProject-Trac Auth"
   AuthUserFile C:/Repos/conf/passwd <-- 위에서 작성한 파일을 지정
   Require valid-user
</Location>


③ Trac에 어드민용 퍼미션 추가를 한다.
위에서 생성한 testadmin 유저에 Trac의 어드민 퍼미션을 설정해 주자.
(참고로 0.11Dev부터는 trac-admin이 Add-On 이 아닌 기본 포함으로 바뀌었다)

위의 9번에서 실행한것 처럼 trac-admin을 실행시켜서 인터프리터 모드로 들어간뒤 다음의 커맨드를 실행 시킨다.
C:\Repos\trac>trac-admin ./TestPrj
Welcome to trac-admin 0.11dev-r5963
Interactive Trac administration console.
Copyright (c) 2003-2007 Edgewall Software

Type:  '?' or 'help' for help on commands.
Trac [C:\Repos\trac\WebDesk]> permission add testadmin TRAC_ADMIN



④ Apache 를 재기동한다

http://localhost/TestPrj 로 접속이 되면 성공
메뉴의 login을 눌러 로그인도 해보자.


-----------------------------------------------
힘이 빠져 여기까지만.
Subversion도 아파치 접속이 가능하도록 설정할 필요가 있으나 다음기회에 추가포스팅으로 미룬다.
토요일 부터 시작해서 쉬엄쉬엄 하긴 했지만, 화면 잡아가며 작성했더니 어느새 이시간이다. ㅡㅡ;; 허허허.



----------------------------

2008/02/02  아파치 설정(PythonInterpreter, PythonOption TracUriRoot) 추가

댓글