天天看点

Windows搭建Trac

1. 安装 Python

- Trac使用python语言编写,自然需要这个环境

我安装的是python-2.7.1.msi,官方的打不开,我是在网上搜索的这个安装文件

所选安装目录是D:\Trac\Python27

2. 安装数据库

If you're using Python 2.5 or 2.6, you already have everything you need. 

2. 安装 Python Setupfile

- Python的补丁包,提供包管理工具

我安装的是setuptools-0.6c11.win32-py2.7.exe,官方的打不开,我是在网上搜索的这个安装文件。

安装的时候它会自己找到Python安装目录,按默认安装即可。在这里会生成非常有用的脚本easy-install,会为之后的安装提供很多方便。

3. 安装 Genshi,可以用下面的命令用 Setupfile 来安装 

-ClearSilver是一套快速、强大、语言无关的html模板系统,在Trac0.11版本中被Genshi取代。Genshi是ClearSilver HTML模板引擎

安装步骤: 

1). 打开cmd

2). 进入含有easy_install的目录,我的在Python27\Scripts\

3). 执行easy_install Genshi

4. 安装Trac语言包

easy_install Babel==0.9.5

5. 安装Trac

essy_install Trac

6. 配置Trac环境

1). 通过 trac-admin 创建一个 Trac Environment

trac-admin d:\trac\mytest initenv

2). 运行成功后,即可以开启 Trac 服务

命令行执行: tracd --port 8000 D:\Trac\mytest

在网页上打开http://127.0.0.1:8000/便可以进入所建工程,但是没有账户登录管理

其它机器也可以通过访问这台机器的 IP 加端口来访问这个服务。最基本、最简单的使用,可以不用 Apache 来搭建 Web 服务器。

3). 添加用户

添加用户名为Admin,密码为 root的账户

python trac-digest.py -u Admin -p root >> D:\Trac\mytest\conf\digest.txt

用用户登录方式启动这个服务

tracd --port 8000 --auth=mytest,D:\Trac\mytest\conf\trac.htdigest,trac D:\Trac\mytest

注意: trac-digest.py这个文件是不存在的,可以在网上去拷贝或下载一个. 

参考网站: 

http://rain.snowrain.org/archives/73

http://trac.edgewall.org/wiki/TracStandalone#GeneratingPasswordsWithoutApache

4).  Trac 管理员密码的设置

单纯把某个用户添加到了工程里,并不能让这个用户有管理工程的权限,所以,需要单独分配权限给这个用户:比如说,我要分本给 Admin 这个用户管理员权限,可以用下面的语句:

> trac-admin D:\Trac\mytest permission add admin TRAC_ADMIN

用tracd重启服务: tracd --port 8000 --auth=mytest,D:\Trac\mytest\conf\trac.htdigest,trac D:\Trac\mytest

好了,Trac算是基本搭建好了,局域网里的用户都可以访问通过IP+端口访问这个Trac站点了。如果你要通过Apache服务器来提供网页版服务,在网页上注册用户等功能,你还需要下面的步骤:

7. 根据提示没有找到web界面的logo来修改trac.ini

[header_logo]

alt = (please configure the [header_logo] section in trac.ini)

height = -1

link = 

src = common/trac_banner.png

width = -1

8. 安装账户管理插件

1). 下载Account Manager Plugin插件

http://trac-hacks.org/wiki/AccountManagerPlugin

2). 安装插件

easy_install https://trac-hacks.org/svn/accountmanagerplugin/0.11

或者:源码安装方法

(1). python setup.py bdist_egg 生成目标文件xx.egg, 像Eclipse的插件jar。源码里面有setup.py文件

(2). easy_install xx.egg 将为所有的项目安装此插件;如果只为某个项目,可以直接把egg文件拷到项目的plugins目录里。

3). 配置trac.ini文件来启动插件

由于不清楚需要启动哪一项,我启动了所有关于acct_mgr的组件

[account-manager]

account_changes_notify_addresses = 

authentication_url = 

force_passwd_change = true

hash_method = HtDigestHashMethod

htdigest_realm = trac

htpasswd_hash_type = crypt

notify_actions = new,change,delete

password_file = D:\Trac\mytest\conf\trac.htdigest

password_format = htdigest

password_store = HtDigestStore

persistent_sessions = False

refresh_passwd = False

user_lock_max_time = 0

verify_email = true

[components]

acct_mgr.* = enabled

4). 安装webadmin

我用的源码安装

同样要在trac.ini配置为开启模式

[components]

acct_mgr.* = enabled

webadmin.* = enabled

9. 配置邮件服务器

[notification]

admit_domains = 

always_notify_owner = false

always_notify_reporter = false

always_notify_updater = true

ambiguous_char_width = single

email_sender = SmtpEmailSender

ignore_domains = 

mime_encoding = none

sendmail_path = sendmail

smtp_always_bcc = 

smtp_always_cc = [email protected]

smtp_default_domain = 

smtp_enabled = true

smtp_from [email protected]

smtp_from_name = 

smtp_password = 123

smtp_port = 25

smtp_replyto = [email protected]

smtp_server = smtp.163.com

smtp_subject_prefix = __default__

smtp_user = [email protected]

ticket_subject_template = $prefix #$ticket.id: $summary

use_public_cc = False

use_short_addr = false

use_tls = false

10. 关联Git

1). 安装git插件

D:\Trac\Python27\Scripts>easy_install http://github.com/hvr/trac-git-plugin/tarball/master

2). 配置git

[components]

acct_mgr.* = enabled

webadmin.* = enabled

tracopt.versioncontrol.git.* = enabled

tracext.git.* = enabled

tracopt.ticket.commit_updater.* = enabled

[trac]

...

## let Trac cache meta-data via CachedRepository wrapper; default: false

cached_repository = true

## disable automatic garbage collection for in-memory commit-tree cache; default: false

persistent_cache = true

## length revision sha-sums should be tried to be abbreviated to (must be >= 4 and <= 40); default: 7

shortrev_len = 6

## minimum length for which hex-strings will be interpreted as commit ids in wiki context; default: 40

wiki_shortrev_len = 7

## executable file name (in case of doubt use absolute path!) of git binary; default: 'git'

git_bin = C:\msysgit\msysgit\bin\git.exe

## define charset encoding of paths stored within git repository; default: 'utf-8'

git_fs_encoding = latin1

## enable reverse mapping of git email addresses to trac user ids; default: false

trac_user_rlookup = true

## use git-committer id instead of git-author id as changeset owner; default: true

use_committer_id = false

## use git-committer timestamp instead of git-author timestamp as changeset time; default: true

use_committer_time = false

11. Ticket中责任人变更为下拉菜单方式

修改trac.ini文件

[ticket]

...

restrict_owner = true

12. 修改Trac中附件大小

修改trac.ini文件

[attachment]

max_size = 262144

TIP:

1. Web服务器,在支持CGI或FastCGI的Web服务器上,Trac可以通过脚本和接口作为一个CGI来运行。还可以使用Apache服务器,但需要安装mod_python或mod_wsgi。以上的Web服务器部署方式,可能对大部分人都太复杂,所以Trac内置了一个单独运行的Web服务器,Tracd。在Trac官方的文档中说,Tracd是一个轻量级的、独立的Trac web服务器,在大多数情况下,它比CGI脚本更容易安装,并且更快。在本文中,我将使用Tracd作为Web服务器。(我不懂CGI和Apache,Tracd拯救了我,这个小东东对我完全够用了)