Windows搭建Trac
韩明德
2023-12-01
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 = name@163.com
smtp_default_domain =
smtp_enabled = true
smtp_from =name@163.com
smtp_from_name =
smtp_password = 123
smtp_port = 25
smtp_replyto = name@163.com
smtp_server = smtp.163.com
smtp_subject_prefix = __default__
smtp_user = name@163.com
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拯救了我,这个小东东对我完全够用了)