Subversion + Trac 安装配置
近来想研究下软件开发的管理,就琢磨着在电脑上配置一个版本管理系统,查阅了一些资料发现Subversion 和Trac 配合比较合适,Subversion 用于版本管理,Trac 用于错误跟踪还带了一个wiki。碰了半天壁,总算勉强把系统运行起来了。闲话少说,开始介绍配置过程。
(一) 操作系统
Windows Server 2003 R2 Enterprise
(二) 软件准备
apache 2.2.11
http://labs.xiaonei.com/apache-mirror/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi
php 5.3
http://windows.php.net/downloads/releases/php-5.3.0-Win32-VC6-x86.zip
Subversion 1.6.3
http://subversion.tigris.org/files/documents/15/46163/Setup-Subversion-1.6.3.msi
TortoiseSVN 1.6.3
http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.3.16613-win32-svn-1.6.3.msi?download
Python 2.6.2
http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi
svn-python-win32-1.6.3-py26
http://subversion.tigris.org/files/documents/15/46152/svn-python-1.6.3.win32-py2.6.exe
trac 0.11.5
http://ftp.edgewall.com/pub/trac/Trac-0.11.5.win32.exe
sqlite 3.6.16
http://www.sqlite.org/sqlite-3_6_16.zip
setuptools 0.6c9
http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c9.tar.gz#md5=3864c01d9c719c8924c455714492295e
Genshi 0.5.1
http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.win32-py2.6.exe
pysqlite-2.5.5-py2.6
http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.5/pysqlite-2.5.5.win32-py2.6.exe
mod_wsgi-3.0c4
http://modwsgi.googlecode.com/files/mod_wsgi-win32-ap22py26-3.0c4.so
这里主要是配置trac需要一大堆东西,看上去很烦而且版本必须选对,它官方网站上还需要ClearSilver,但没有支持python 2.6,我也就没装,不过目前还没发现什么问题。这里提一下Python 3就不要想了,上面没几个东东支持它的,连trac 本身都说需要小于3.0。
mod_wsgi 是Apache的模块,用来运行Python 程序的。在trac 官网上提供了几种选择,可以使用CGI,不过速度慢了点;FastCGI,又一个不支持Python 2.6,mod_python还是不支持2.6。而mod_wsgi得beta版本还支持Python 3,而且速度比CGI和mod_python 要快。
(三) 软件配置
1. 首先安装apache,这个不用多说。
2. 安装php 5.3,和以前版本唯一的区别是使用mysql时不用把libmysql.dll复制到系统文件夹下了,你也找不到这个dll了。
3. 安装subversion,一路next就好了。把subversion的bin文件夹下的mod_authz_svn.so 和mod_dav_svn.so 两个文件拷到apache的modules文件夹下面,把libdb44.dll、libeay32.dll、ssleay32.dll三个文件拷到 apache的bin文件夹下面。然后在http.conf 里面有两行
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把前面的#号去掉。
现在开始建立subversion文件库,我是放在e:\project\svn 下面的,采用集中方式,配置http.conf如下。
subversion 客户端软件根据个人需要安装。
4. 安装好python后,安装trac,sqlite等乱七八糟的东西,基本都是一路next的,就setuptools有点麻烦,它没有支持 python2.6的exe程序,只有下载setuptools-0.6c9.tar.gz 这个文件,解压后运行 python setup.py install 就好了。
把mod_wsgi-win32-ap22py26-3.0c4.so 复制到apache的modules目录下,重命名为mod_wsgi.so,再在http.conf 里加上
然后配置apache:
5. 配置WebDAV,新建e:\project\files 文件夹,配置apache:
(四) 测试安装
这里我新建个test 项目来测试下前面的配置,这里大家自行配置环境变量。
首先建立svn 库,从cmd 导航到e:\project 下面,输入
到这为止,subversion 和trac 就配置好了,剩下的事就是开始真正管理自己的项目了。
(一) 操作系统
Windows Server 2003 R2 Enterprise
(二) 软件准备
apache 2.2.11
http://labs.xiaonei.com/apache-mirror/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi
php 5.3
http://windows.php.net/downloads/releases/php-5.3.0-Win32-VC6-x86.zip
Subversion 1.6.3
http://subversion.tigris.org/files/documents/15/46163/Setup-Subversion-1.6.3.msi
TortoiseSVN 1.6.3
http://downloads.sourceforge.net/tortoisesvn/TortoiseSVN-1.6.3.16613-win32-svn-1.6.3.msi?download
Python 2.6.2
http://www.python.org/ftp/python/2.6.2/python-2.6.2.msi
svn-python-win32-1.6.3-py26
http://subversion.tigris.org/files/documents/15/46152/svn-python-1.6.3.win32-py2.6.exe
trac 0.11.5
http://ftp.edgewall.com/pub/trac/Trac-0.11.5.win32.exe
sqlite 3.6.16
http://www.sqlite.org/sqlite-3_6_16.zip
setuptools 0.6c9
http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c9.tar.gz#md5=3864c01d9c719c8924c455714492295e
Genshi 0.5.1
http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.win32-py2.6.exe
pysqlite-2.5.5-py2.6
http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.5/pysqlite-2.5.5.win32-py2.6.exe
mod_wsgi-3.0c4
http://modwsgi.googlecode.com/files/mod_wsgi-win32-ap22py26-3.0c4.so
这里主要是配置trac需要一大堆东西,看上去很烦而且版本必须选对,它官方网站上还需要ClearSilver,但没有支持python 2.6,我也就没装,不过目前还没发现什么问题。这里提一下Python 3就不要想了,上面没几个东东支持它的,连trac 本身都说需要小于3.0。
mod_wsgi 是Apache的模块,用来运行Python 程序的。在trac 官网上提供了几种选择,可以使用CGI,不过速度慢了点;FastCGI,又一个不支持Python 2.6,mod_python还是不支持2.6。而mod_wsgi得beta版本还支持Python 3,而且速度比CGI和mod_python 要快。
(三) 软件配置
1. 首先安装apache,这个不用多说。
2. 安装php 5.3,和以前版本唯一的区别是使用mysql时不用把libmysql.dll复制到系统文件夹下了,你也找不到这个dll了。
3. 安装subversion,一路next就好了。把subversion的bin文件夹下的mod_authz_svn.so 和mod_dav_svn.so 两个文件拷到apache的modules文件夹下面,把libdb44.dll、libeay32.dll、ssleay32.dll三个文件拷到 apache的bin文件夹下面。然后在http.conf 里面有两行
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
把前面的#号去掉。
现在开始建立subversion文件库,我是放在e:\project\svn 下面的,采用集中方式,配置http.conf如下。
1 <Location /svn>
2 DAV svn
3 SVNParentPath E:/Project/svn
4 AuthType Basic
5 AuthName "Subversion Repository"
6 AuthUserFile "E:/Project/project.passwd"
7 Require valid-user
8 SVNPathAuthz off
9 </Location>
这里加上访问控制,需要用户名和密码,具体路径的控制我关闭了,在subversion手册里面说这个比较耗资源,建议关闭。2 DAV svn
3 SVNParentPath E:/Project/svn
4 AuthType Basic
5 AuthName "Subversion Repository"
6 AuthUserFile "E:/Project/project.passwd"
7 Require valid-user
8 SVNPathAuthz off
9 </Location>
subversion 客户端软件根据个人需要安装。
4. 安装好python后,安装trac,sqlite等乱七八糟的东西,基本都是一路next的,就setuptools有点麻烦,它没有支持 python2.6的exe程序,只有下载setuptools-0.6c9.tar.gz 这个文件,解压后运行 python setup.py install 就好了。
把mod_wsgi-win32-ap22py26-3.0c4.so 复制到apache的modules目录下,重命名为mod_wsgi.so,再在http.conf 里加上
1 LoadModule wsgi_module modules/mod_wsgi.so
在e:\project 下新建个trac文件夹,供以后放项目的trac 用,然后在project下面新建个trac.wsgi 文件。trac 程序提供的trac.web.main.dispatch_request() 这个函数将trac 运行在wsgi 下,配置trac.wsgi 如下:1 import os
2 os.environ['TRAC_ENV_PARENT_DIR'] = 'E:/Project/trac'
3 os.environ['PYTHON_EGG_CACHE'] = 'E:/Project/trac/eggs'
4
5 import trac.web.main
6 application = trac.web.main.dispatch_request
其中e:/project/trac/eggs 这个文件夹放缓存文件。如果想所有项目都放在一起可以把TRAC_ENV_PATENT_DIR 改成TRAC_ENV。2 os.environ['TRAC_ENV_PARENT_DIR'] = 'E:/Project/trac'
3 os.environ['PYTHON_EGG_CACHE'] = 'E:/Project/trac/eggs'
4
5 import trac.web.main
6 application = trac.web.main.dispatch_request
然后配置apache:
1 WSGIScriptAlias /trac "E:/Project/trac.wsgi"
2 <Directory "E:/Project/trac">
3 WSGIApplicationGroup %{GLOBAL}
4 Order deny,allow
5 Allow from all
6 </Directory>
7
8 <LocationMatch "/project/[^/]+/login">
9 AuthType Basic
10 AuthName "Trac Environment"
11 AuthUserFile "E:/Project/project.passwd"
12 Require valid-user
13 </LocationMatch>
同样对登录进行验证。2 <Directory "E:/Project/trac">
3 WSGIApplicationGroup %{GLOBAL}
4 Order deny,allow
5 Allow from all
6 </Directory>
7
8 <LocationMatch "/project/[^/]+/login">
9 AuthType Basic
10 AuthName "Trac Environment"
11 AuthUserFile "E:/Project/project.passwd"
12 Require valid-user
13 </LocationMatch>
5. 配置WebDAV,新建e:\project\files 文件夹,配置apache:
1 Alias /files "E:/Project/files"
2 <Location /files>
3 DAV On
4 AuthType Basic
5 AuthName "Files"
6 AuthUserFile "E:/Project/project.passwd
7 Require valid-user
8 </Location>
9
10 <LocationMatch ^/files/[^/]+/(images|public)/>
11 <LimitExcept GET OPTIONS>
12 Require valid-user
13 </LimitExcept>
14 </LocationMatch>
6. 利用apache bin文件夹下的htpasswd创建用户:2 <Location /files>
3 DAV On
4 AuthType Basic
5 AuthName "Files"
6 AuthUserFile "E:/Project/project.passwd
7 Require valid-user
8 </Location>
9
10 <LocationMatch ^/files/[^/]+/(images|public)/>
11 <LimitExcept GET OPTIONS>
12 Require valid-user
13 </LimitExcept>
14 </LocationMatch>
htpasswd -c /projects/projects.password username
后面会提示需要输入密码、(四) 测试安装
这里我新建个test 项目来测试下前面的配置,这里大家自行配置环境变量。
首先建立svn 库,从cmd 导航到e:\project 下面,输入
svnadmin create svn\test
然后建立trac库,运行python c:\python26\scripts\trac-admin.exe trac\test initenv
这个时候进入的trac 的交互shell,会询问Project Name,输入test,询问Database connection string 和Repository type 直接回车使用默认,Path to repository type 输入e:\project\svn\test,这个时候trac 就配置好了,根据cmd提示,输入tracd --port 8000 --http11 e:\project\trac\test
启动trac ,此时可以在浏览器中输入 http://localhost:8000/test 就可以看到trac 提供的web 接口了,见下图。到这为止,subversion 和trac 就配置好了,剩下的事就是开始真正管理自己的项目了。