2008/04/02 09:06
[개발/도구들]
이전부터 느껴온 것이지만 프로젝트 관리 툴 없이 다수에 의해 진행되는 프로젝트는 산으로 가기 쉽상이다.
그래서 이번 기회에 trac+svn 을 설치해보기로 했다.
데비안에서 설치했으며 trac+svn+apache+mod_python+ldap+sqlite 으로 구성하였다.
패키지 설치
우선 필요한 패키지를 설치한다.
svn 세팅
/home/svn 을 svn root 로 해서, 프로젝트의 저장소를 만든다. svn 설정 및 저장소 세팅은 관련된 것은 링크 를 참조하자.
지금은 저장소를 만들고 svn 데몬을 시작하기만 하면 된다.
저장소를 만들었다면, 권한을 주자.
trac 페이지 생성
/home/trac 을 trac root 로 해서, 프로젝트 디렉토리를 만든다. 그리고 아래의 명령을 이용하여 trac 페이지를 만든다.
이것은 나중에 conf/trac.ini 파일을 열어서 수정할 수 있고, 저장소가 변경되면 아래 명령으로 svn 저장소와 trac 을 싱크해야한다.
완료했다면, 아래 명령으로 디렉토리에 권한을 주자.
Apache 설정
여기서는 virtualhost 를 사용해 해당 서버의 8080포트로 동작하도록 설정한다.
우선 /etc/apache2/mod_available 에 python.load 파일에서 mod_python 을 로드하는 부분과,/etc/apache2/mod_enabled 에 링크가 걸려있는지 확인한다.
/etc/apache2/site-available 에서 vim trac.conf 를 실행하여 파일을 만들고 아래와 같이 입력한다.
여러 프로젝트를 하나의 VirtualHost 에서 서비스하려면 아래와 같이 수정한다.
/etc/apache2/site-enabled 에 위의 파일을 링크 한다.
passwd 파일 생성
이제 설치는 거의 끝났다.
/etc/apache2/passwd 디렉토리를 만들고 아래 명령을 이용하여 htpasswd 파일을 생성한다.
모두 완료했다면, 아파치를 재시작하고 해당 사이트에 접속하여 동작을 확인한다.
관리자 권한 부여
사이트가 정상적으로 동작한다면, 관리자 아이디를 만들고 권한을 준다. 관리자 아이디는 passwd 파일을 통해 이미 만들어두었으므로 여기서는 권한부여만 한다.
참고 자료:
http://trac.edgewall.org/wiki/TracInstall
http://trac.edgewall.org/wiki/TracOnDebianSarge
trac 을 사용한 프로젝트:
제로보드
그래서 이번 기회에 trac+svn 을 설치해보기로 했다.
데비안에서 설치했으며 trac+svn+apache+mod_python+ldap+sqlite 으로 구성하였다.
패키지 설치
우선 필요한 패키지를 설치한다.
$ aptitude install sqlite python-sqlite apache2 trac libapache2-mod-python python-subversion libldap2 python-clearsilver
svn 세팅
/home/svn 을 svn root 로 해서, 프로젝트의 저장소를 만든다. svn 설정 및 저장소 세팅은 관련된 것은 링크 를 참조하자.
지금은 저장소를 만들고 svn 데몬을 시작하기만 하면 된다.
저장소를 만들었다면, 권한을 주자.
$ find /home/svn/project -type f -exec chmod 660 {} \;
$ find /home/svn/project -type d -exec chmod 2770 {} \;
$ chown -R root.www-data /home/svn/project
$ find /home/svn/project -type d -exec chmod 2770 {} \;
$ chown -R root.www-data /home/svn/project
trac 페이지 생성
/home/trac 을 trac root 로 해서, 프로젝트 디렉토리를 만든다. 그리고 아래의 명령을 이용하여 trac 페이지를 만든다.
$ trac-admin /home/trac/project initenv
실행하면 몇가지를 물어보는데 svn 저장소를 물어보는 부분에서 /home/svn/project 를 입력하면 된다.이것은 나중에 conf/trac.ini 파일을 열어서 수정할 수 있고, 저장소가 변경되면 아래 명령으로 svn 저장소와 trac 을 싱크해야한다.
$ trac-admin /home/trac/project resync
완료했다면, 아래 명령으로 디렉토리에 권한을 주자.
$ find /home/trac/project -type f -exec chmod 660 {} \;
$ find /home/trac/project -type d -exec chmod 2770 {} \;
$ chown -R root.www-data /home/trac/project
$ find /home/trac/project -type d -exec chmod 2770 {} \;
$ chown -R root.www-data /home/trac/project
Apache 설정
여기서는 virtualhost 를 사용해 해당 서버의 8080포트로 동작하도록 설정한다.
우선 /etc/apache2/mod_available 에 python.load 파일에서 mod_python 을 로드하는 부분과,/etc/apache2/mod_enabled 에 링크가 걸려있는지 확인한다.
LoadModule python_module /usr/lib/apache2/modules/mod_python.so
/etc/apache2/site-available 에서 vim trac.conf 를 실행하여 파일을 만들고 아래와 같이 입력한다.
NameVirtualHost 192.168.0.100
Listen 8080
<VirtualHost 192.168.0.100:8080>
DocumentRoot /home/trac/project
<Location />
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/trac/project
PythonOption TracUriRoot/
</Location>
<Location "/login">
AuthType Basic
AuthName "project"
AuthUserFile /etc/apache2/passwd/project.passwd
Require valid-user
</Location>
</VirtualHost>
Listen 8080
<VirtualHost 192.168.0.100:8080>
DocumentRoot /home/trac/project
<Location />
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/trac/project
PythonOption TracUriRoot/
</Location>
<Location "/login">
AuthType Basic
AuthName "project"
AuthUserFile /etc/apache2/passwd/project.passwd
Require valid-user
</Location>
</VirtualHost>
여러 프로젝트를 하나의 VirtualHost 에서 서비스하려면 아래와 같이 수정한다.
<Location />
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /home/trac
PythonOption TracUriRoot /
</Location>
<LocationMatch "/[^/]+/login">
AuthType Basic
AuthName "project"
AuthUserFile /etc/apache2/passwd/project.passwd
Require valid-user
</LocationMatch>
/etc/apache2/site-enabled 에 위의 파일을 링크 한다.
passwd 파일 생성
이제 설치는 거의 끝났다.
/etc/apache2/passwd 디렉토리를 만들고 아래 명령을 이용하여 htpasswd 파일을 생성한다.
$ htpasswd2 -c project.passwd admin
$ htpasswd2 project.passwd user
$ htpasswd2 project.passwd user
모두 완료했다면, 아파치를 재시작하고 해당 사이트에 접속하여 동작을 확인한다.
관리자 권한 부여
사이트가 정상적으로 동작한다면, 관리자 아이디를 만들고 권한을 준다. 관리자 아이디는 passwd 파일을 통해 이미 만들어두었으므로 여기서는 권한부여만 한다.
$ trac-admin /home/trac/project permission add admin TRAC_ADMIN
참고 자료:
http://trac.edgewall.org/wiki/TracInstall
http://trac.edgewall.org/wiki/TracOnDebianSarge
trac 을 사용한 프로젝트:
제로보드


