[图] Windows平台下trac管理平台的搭建

1. 前言


本文将介绍Windows平台下trac+svn+apache平台的搭建。

Trac是一个集成了Wiki和问题跟踪系统的轻量级项目管理平台,采用Python语言开发。

首先我们来看一下trac项目的网站(http://trac.edgewall.org)。这个网站本身也是用trac搭建的哦,就像svn项目自己也是用svn来进行管理一样。

wiki

trac平台的首页是wiki,通常这里可以用来放置用户手册、FAQ、下载链接以及各种小技巧。

timeline

在时间线(timeline)页面,可以浏览各种事件,包括源码的变更集(changeset)、wiki的编辑、任务单(ticket)的建立和状态变更等。

changeset

点击其中的一个事件链接,如一个变更集(changeset),可以看到更详细的资料。

roadmap

在路线图(roadmap)页面中,可以查看各个里程碑的完成状态。

milestone

点击其中一个里程碑,可以查看相应的描述信息,和各个组件(component)中任务的完成状态。在trac中,组件通常是一些抽象服务的描述,而不是软件实现过程中的模块(module)。如上图所示,attachment组件用来表示所有和“附件”相关的任务,而i18n表示国际化支持。

trunc

最后,trac还支持对svn库中的文件进行浏览,并且可以在给定的两个版本间进行比较。

2. 安装前的准备


下载以下安装包。

  • Apache:httpd-2.2.21-win32-x86-openssl-0.9.8r.msi
  • mod_wsgi: mod_wsgi-win32-ap22py27-3.3.so
  • Subversion:Setup-Subversion-1.7.1.msi
  • Subversion Python Binding:svn-win32-1.7.1_py27.zip
  • Python:python-2.7.2.msi
  • Setuptools:setuptools-0.6c11.win32-py2.7.exe
  • trac:Trac-0.12.2.win32.exe
  • Babel:Babel-0.9.6.win32.exe
  • Genshi:Genshi-0.6.win32.exe

如果需要一个图形化的svn客户端,还可以先把TortoiseSVN准备好。

  • TortoiseSVN-1.7.1.22161-win32.msi
  • TortoiseSVN-1.7.1.22161-x64.msi (用于64位Windows)

以上各软件的版本都是是写这篇文章时的最新版,不过有一个例外。Python的 3.x的最新版已经是3.2.2了,不过trac并不支持Python 3.x版,因此这里使用的是Python 2.x的最新版。

3. 开始安装


3.1 Apache

运行httpd-2.2.21-win32-x86-openssl-0.9.8r.msi。在服务器信息页面,按照下面填写即可。

Apache

安装类型(Setup Type)选择为Typical,安装路径可以略加精简,这里设置为H:\Apache

Apache_2

安装完成后,托盘图标区域会自动出现Apache Service Monitor,可对服务器进行一些基本的操作。这时也可以打开127.0.0.1访问Apache默认首页了。

注意:如果80端口被占用,安装将失败。在安装之前,请关闭Microsoft SQL Server服务,或者卸载类似的软件。

Apache_3

3.2 mod_wsgi

将文件mod_wsgi-win32-ap22py27-3.3.so重命名为mod_wsgi.so,并复制到H:\Apache\modules\目录下。

3.3 Python

安装Python到默认位置,这里是H:\Python27,安装方式保持默认状态。

Python

3.4 Setuptools、Babel、Genshi、Trac

依次安装Setuptools、Babel、Genshi和Trac。以上4者都是Python应用程序,只需一路点击下一步即可完成安装。

Setuptools

3.5 Subversion

安装Subversion到默认路径,这里是H:\Program Files\Subversion

Subversion

3.6 Subversion Python Binding

解压文件svn-win32-1.7.1_py27.zip,将libsvn和svn两个目录复制到H:\Python27\Lib\site-packages下。

4. 配置环境变量


在环境变量Path中,加入以下的路径。

  • H:\Python27
  • H:\Python27\Scripts
  • H:\Apache\bin
  • H:\Program Files\Subversion\bin

如果安装至默认路径,则环境变量Path中需要新增的内容可能是这个样子。

C:\Python27;C:\Python27\Scripts;C:\Program Files\Apache Software Foundation\Apache2.2\bin;C:\Program Files\Subversion\bin

5. 建立项目


这里所说的项目由2部分组成,其一是trac管理平台,其二是svn库(repository)。

首先需要为二者选定一个路径,这个路径用于保存trac/svn库中的所有信息,同时也是今后备份的对象。假设选定如下两个目录。

  • D:\Demo\trac
  • D:\Demo\svn

5.1 建立svn库

打开cmd,输入以下指令,建立Demo项目的文件库。

svnadmin create "D:\Demo\svn"

编辑项目Demo的用户密码配置D:\Demo\svn\conf\passwd,将其设置如下。

[users]
harry = harryssecret
sally = sallyssecret

编辑项目Demo的访问控制配置D:\Demo\svn\conf\authz,将其设置如下。

[groups]
harry_and_sally = harry,sally

[/]
harry = rw
sally = r
* = r

编辑项目Demo的综合配置D:\Demo\svn\conf\svnserve.conf,将其设置如下。

[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

此时我们已经为Demo的文件库建立了2个用户,Harry和Sally,密码分别是harryssecret和sallyssecret。Harry具有读写权限,Sally具有读权限,而所有其他的非认证用户都具有读权限。

5.2 建立trac管理平台

打开cmd,输入以下指令。

trac-admin "D:\Demo\trac" initenv

trac-admin首先会提示输入项目名称,这里输入Demo,然后回车。

然后需要输入使用的数据库,这里可以直接回车使用默认内置的SQLite。

trac_1

于是trac-admin将开始建立项目环境。当建立完成时,最后一行的输出将是Congratulations!。

trac_2

在cmd下使用htpasswd建立trac平台的用户和密码。使用参数-c代表首先清空文件,否则是新增用户。

htpasswd -c "D:\Demo\trac\password.txt" admin
htpasswd "D:\Demo\trac\password.txt" billy

trac_password

上面已经建立了管理员admin和用户billy的密码文件。但是admin只是名为管理员。使用下面的命令赋予用户admin trac管理员的权限。

trac-admin "D:\Demo\Trac" permission add admin TRAC_ADMIN

接下来产生trac的wsgi脚本。

mod_wsgi是Apache的一个模块,用于运行兼容wsgi的Python应用程序,由于使用C语言编写,具有非常好的性能。

在cmd下输入以下指令。

trac-admin "D:\Demo\trac" deploy "D:\Demo\trac\deploy"

trac-admin会自动建立一个deploy目录,并且生成相应的脚本。我们所需要的文件为D:\Demo\trac\deploy\cgi-bin\trac.wsgi

deploy

编辑Apache的配置文件,H:\Apache\conf\httpd.conf,定位到LoadModule区域的末尾,加入以下内容。

LoadModule wsgi_module modules/mod_wsgi.so

WSGIScriptAlias / D:\Demo\trac\deploy\cgi-bin\trac.wsgi 
<Directory "D:\Demo\trac\deploy\cgi-bin">
    WSGIApplicationGroup %{GLOBAL}
    Order deny,allow
    Allow from all
</Directory>

<LocationMatch "/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile "D:\Demo\trac\password.txt"
  Require valid-user
</LocationMatch>

保存配置文件,重启Apche。这时,在浏览器中输入127.0.0.1,已经可以访问管理平台了。

6. 配置trac

6.1 默认附件大小

打开文件D:\Demo\trac\conf\trac.ini,定位到[attachment]一节,将附件大小设置为5 MB。

max_size = 5242880

6.2 使用默认的Logo

编辑D:\Demo\trac\conf\trac.ini的[header_logo]一节,使用默认Logo trac_banner.png。

[header_logo]
alt = 
height = -1
link = 
src = trac_banner.png
width = -1

6.3 集成svn

我们可以让一个trac项目和一个svn库联系在一起,当svn库更新时,将在timeline页面产生一条事件,同时也可直接浏览svn库中的文件。

编辑D:\Demo\trac\conf\trac.ini的[trac]一节,填入svn库的地址,如下所示。

repository_dir = D:/Demo/svn

7. 开始运行

再次重启Apache,这时整个平台已经基本成形了。运行cmd,输入以下指令。

svnserve -d -r "D:\Demo\svn"

这样svn服务将开始运行。为了使用方便,可以安装TortoiseSVN等图形客户端。在向svn库中添加一个文件后,timeline已经可以正常显示了。

done

8. 一些额外的配置

有时我们会希望以Windows服务的形式来运行svn服务,而不是建立一个快捷方式运行svnserve程序。

为了达到这个目的,可以使用管理员权限打开cmd,输入以下指令。

sc create svnservice binpath= "\"H:\Program Files\Subversion\bin\svnserve.exe\" --service -r D:\Demo\svn" displayname= "svnservice" depend= Tcpip

注意如果参数中有空格,那么双引号中的双引号需要使用转义字符(\")。另外displayname和depend后面必须紧跟等号,后跟一个空格。

如果需要启动svn服务,输入如下指令。

net start svnservice

如需停止,输入以下指令。

net stop svnservice

posted on 2011-10-27 21:37  F32  阅读(2500)  评论(1编辑  收藏  举报

导航