当前位置: 首页 > 工具软件 > email2trac > 使用案例 >

Trac部署记录

缑赤岩
2023-12-01

Trac是一个开源的小巧型项目管理系统。配合广泛的插件可以完成用户登录注册,邮件认证,blog等实用功能,并且支持中文。并且提供了Linux和Windows两个平台的版本,下面来介绍一下我在centos上部署Trac遇见的问题。

1.环境准备

需要Python2.5以上但是不支持Python3.X。

需要setuptools

需要Genshi

另外生产环境的话还需要一个DB,比如我使用的MySQL。

2.安装

使用easy_install来安装,的确是很easy。

$ easy_install Trac==1.0

3.创建项目

$ trac-admin /path/to/myproject initenv

根据提示输入你的项目名称
根据提示输入你的DB链接 MySQL链接字符串为

<pre name="code" class="html">mysql://trac-user:password@db-host/db-name
 

这里有可能会失败,仔细看提示就可以,Trac给的提示很详细。常见的问题就是 a.项目路径已存在;b.创建路径的权限不足;c.数据库中表已存在;d.数据库的编码格式不符;

4.创建admin用户

$ htpasswd -cm /path/to/project/user.htpasswd admin
$ htpasswd -c /path/to/myproject/.htpasswd username

根据提示,输入你的密码

然后进行赋权操作

$ trac-admin /path/to/project permission add admin TRAC_ADMIN

5.启动Trac

到这里Trac就可以正常启动了

$ tracd -p 9010 -d /path/to/project
要注意iptables里开启对应的端口才可以通过浏览器来访问。
6.安装插件

Trac有很多插件,可以在官网上查看(http://trac.edgewall.org/wiki/TracPlugins

推荐安装一个blog,一个AccoutManager。

blog提供了blog功能,个人感觉比自带的wiki要更好用一些。

AccoutManager提供了注册功能,比较实用。

插件安装方法可以参考官网上的介绍,比较简单不再多说。

需要注意AccountManager插件需要修改配置文件trac.ini

这个文件在 Your_project/conf/ 下。

$ vim conf/trac.ini
找到 [components] 配置 添加如下
[components]
acct_mgr.admin.accountmanageradminpanel = enabled
acct_mgr.api.accountmanager = enabled
acct_mgr.db.sessionstore = enabled
acct_mgr.guard.accountguard = enabled
acct_mgr.htfile.htdigeststore = enabled
acct_mgr.htfile.htpasswdstore = enabled
acct_mgr.http.httpauthstore = enabled
acct_mgr.macros.accountmanagerwikimacros = enabled
acct_mgr.notification.accountchangelistener = enabled
acct_mgr.notification.accountchangenotificationadminpanel = enabled
acct_mgr.pwhash.htdigesthashmethod = enabled
acct_mgr.pwhash.htpasswdhashmethod = enabled
acct_mgr.register.basiccheck = enabled
acct_mgr.register.bottrapcheck = enabled
acct_mgr.register.emailcheck = enabled
acct_mgr.register.emailverificationmodule = enabled
acct_mgr.register.regexpcheck = enabled
acct_mgr.register.registrationmodule = enabled
acct_mgr.register.usernamepermcheck = enabled
acct_mgr.svnserve.svnservepasswordstore = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.emailverificationmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
acct_mgr.web_ui.registrationmodule = enabled
acct_mgr.web_ui.resetpwstore = enabled
doxygentrac.doxygentrac.doxygenplugin = disabled
trac.web.auth.loginmodule = disabled

一定要把trac.web.auth.loginmodule 配置为 disabled 才能使acct_mgr.web_ui.loginmodule 生效。
7.修改logo

网上很多教修改logo的方法其实是不那么好使的。主要问题在于logo放置的路径。

需要将你的logo图片放在你的项目路径下的htdocs夹子下,然后在conf/trac.ini 文件里配置如下

[header_logo]
alt = MyCheering
height = 144
link =
src = site/logo.png
width = 144
高宽比可以自己根据logo图大小来调,注意src的值要填相对路径并且是 site 开头,之后才是你的图片的文件名。
8.配置邮件

这个邮件提醒的配置网上的大多数教程更是不全面,害的我调了足足一天。

先来看基本的配置,仍然是 conf/trac.ini中

[notification]
admit_domains =
always_notify_owner = true
always_notify_reporter = true
always_notify_updater = true
ambiguous_char_width = single
batch_subject_template = $prefix Batch modify: $tickets_descr
email_sender = SmtpEmailSender
mime_encoding = base64
sendmail_path = sendmail
smtp_always_bcc =
smtp_always_cc =
smtp_default_domain =
smtp_enabled = true
smtp_from = yourname@sina.com
smtp_from_author = false
smtp_password = ********
smtp_port = 25
smtp_replyto =
smtp_server = smtp.sina.com
smtp_subject_prefix = __default__
smtp_user = your_name
ticket_subject_template = $prefix #$ticket.id: $summary
use_public_cc = false
use_short_addr = false
use_tls = false
网上大多数建议使用gmail服务,但是国内的网络环境只能呵呵了。一开始我使用了企鹅家的企业邮箱。但是不幸的企鹅的企业邮箱只能走SSL(不确定修改端口为465是否能用)
最终我重新注册了sina的邮箱。

配置项中smtp_from填写你的邮箱地址,smtp_server填写发件服务器,如果你也是sina的邮箱就照我的填就可以了。另外smtp_user填写你的用户名,就是你邮箱地址@之前的部分。其他配置项可以参考官网解释。

网上大多数教程到这里就结束了。但是!只配置这些还是发不出邮件来的。我就是被这个问题卡了足足一天,Trac的日志中没有任何错误日志,我甚至怀疑是我家服务器的网络问题。

最终还是在官网(这里)上找到了答案。

官网在配置提醒之前给了一句话

Important: For TracNotification to work correctly, the [trac] base_url option must be set in trac.ini.

verify_email = false

一定要记得配置[trac] 下面的base_url 哦~~

恍然大悟,赶紧打开配置文件做了相应配置。顺便看了一眼官网对这个base_url的定义

Reference URL for the Trac deployment. This is the base URL that will be used when producing documents that will be used outside of the web browsing context, like for example when inserting URLs pointing to Trac resources in notification e-mails.
明确的说了,用于notification e-mails,而且Default是空的。
果然,这个配置上之后邮件提醒功能完全OK了。

9.可能会遇见

 a.配置了AccountManager之后,登录不上去了。说密码不对之类的。修改配置文件 conf/trac.ini

[account-manager]
hash_method = HtDigestHashMethod
htpasswd_file = /home/mc/mycheering/user.htpasswd
htpasswd_hash_type = md5
password_format = htpasswd
password_store = HtPasswdStore
 b.注册之后第一次登录会要求邮件验证。去掉验证的方法,修改配置文件 conf/trac.ini

[account-manager]
<pre name="code" class="html"><p class="p1">verify_email = false</p>

 

好了愉快的玩耍吧。



 类似资料: