[版本管理] SVN 加 Trac 在 apache 上的整合

Jun 27th, 2010

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2010/06/27/svn-trac-apache.html

 

 做为研发,最重要的就是代码.现在转架构了.没有了 SVN ,只能自己来建一个自己来用了.使用最好一个流行的 trac 来管理 svn 吧.
记的先安装我以前文件中提到过的扩展 rpm 的源.然后安装下面的软件

 SVN 环境的安装

(1. SVN 加 Trac 安装前的准备

$ yum -y install subversion trac mod_dav_svn mod_python sqlite-devel python-sqlite2 python-setuptools

上面的名字就能看出是分别做些什么,详细的内容我想都不用我来介绍了.

(2.安装 SVN,和配置 SVN 的认证

通过 Web 服务器使用 dav_svn 共享出来.这样才能远程同步和共享.
建二个目录,一个是放源码项目的目录,另一个放个认证的文件.因为不能给认证的文件共享出来了,所以放另一个目录中这样安全

$ mkdir -p /data/svn/svnrepos
$ mkdir /data/svn/auth

 (3. 建一个用户,然后我们好测试认证是否可用.

$ htpasswd -cp /data/svn/auth/.htpasswd fukai

 (4. 现在使用安装好的 SVN 中的 svnadmin   命令来建第一个项目

$ svnadmin create /data/svn/svnrepos/php-oa


(5. 第一个项目,需要几个初始化的文件.这是 svn 的标准.都需要这几个文件.

$ svn mkdir file:///data/svn/svnrepos/php-oa/{branches,tags,trunk} -m '建立初始文件'

会输出如下内容

Committed revision 1.

(6. 现在我们修改这个项目库的权限 ,需要让 Apache 可以读写.不然没法提交和更新数据

$ chown -R apache:apache /data/svn/svnrepos/php-oa/

 (7.配置 Apache 的权限 ,配置这个文件 /etc/httpd/conf.d/svn.conf 修改成如下内容

<location /svn >
 DAV svn
 SVNListParentPath on
 SVNParentPath /data/svn/svnrepos/
 AuthType Basic
 AuthName "My Svn Repository"
 AuthUserFile /data/svn/auth/.htpasswd
 Require valid-user
</location>

 

现在可以重起,然后使用自己的网站地址加 svn 来打开 svn 的地址,会提交你输入密码的
http://www.php-oa.com/svn/

 

安新 Trac 这个管理

(1. 这是一个算是 svn 的 Web 管理软件,先新建一个目录,然后初始化这个软件到这个目录中.

mkdir -p /data/trac/svn


(2. 我们使用下面的命令来初始化项目库

trac-admin /data/trac/svn initenv

(3. 来配置 apache 支持 trac ,可以通过 trac 来打开 和管理 svn . 编辑 /etc/httpd/conf.d/trac.conf 的文件.修改如下内容

### The recommended Trac web interface requires mod_python
<IfModule mod_python.c>

### Create your Trac environments as subdirectories of /var/trac
### They will appear in a listing on your website at /trac/, and be available
### at /trac/PROJECTNAME/
<Location /trac>
  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend
**  PythonOption TracEnvParentDir /data/trac/**
  PythonOption TracUriRoot /trac
</Location>

### Use htpasswd to add Trac accounts to the AuthUserFile
<LocationMatch "/trac/[^/]+/login">
  AuthType Basic
**  AuthName "Trac"**
**  AuthUserFile /data/svn/auth/.htpasswd**
**  Require valid-user**
</LocationMatch>

</IfModule>

 (4. 还需要修改一下这个目录的权限

chown -R apache:apache /data/trac/

然后在重起,然后在打开 http://www.php-oa.com/trac 测试.是否可以打开,和正常见到内容

(5. 最后.设置 newuser 为管理员帐号:

trac-admin/data/trac/svn permission add newuser TRAC_ADMIN

 

安装trac和 svn 有关相关插件


(1.安装插件前的准备,注意上面一定要安装 python-setuptools 这个 rpm 包,他是用来给 trac 来安装插件用.第一次使用需要先更新一下.不然会报错

yum install python-setuptools
easy_install -U setuptools
easy_install -Z Genshi==0.5

(2.开始安装常用插件

easy_install http://svn.edgewall.org/repos/trac/plugins/0.10/webadmin
easy_install http://trac-hacks.org/svn/iniadminplugin/0.11/

easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.10
easy_install http://trac-hacks.org/svn/svnauthzadminplugin/0.11
easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk

easy_install http://trac-hacks.org/svn/growlplugin/0.11/
easy_install http://svn.recurser.com/ganttcalendar/trunk/
easy_install http://trac-hacks.org/svn/datefieldplugin/0.11/
easy_install http://trac-hacks.org/svn/breadcrumbsnavplugin/0.11

WebAdmin:Trac 的基本管理模块.
IniAdmin:trac.ini 管理.
Account Manager:Trac 的用户管理.
TracWiki WYSIWYG Editor:让wiki编辑器变成 WYSIWYG 编辑器.
Svnauthz File Administration:SVN 的帐号及存取权限管理.

还有另外一些有意思的插件,大家可以在看看.

(3. 配置 Trac project的插件配置
把以下内容写入到 vim /data/trac/svn/conf/trac.ini中:

[components]
acct_mgr.* = enabled
iniadmin.iniadmin.iniadminplugin = enabled
trac.web.auth.loginmodule = disabled
tracgantt.* = enabled
webadmin.* = enabled

[components]
acct_mgr.* = enabled
acct_mgr.admin.accountmanageradminpage = enabled
acct_mgr.web_ui.accountmodule = enabled
acct_mgr.web_ui.loginmodule = enabled
acct_mgr.web_ui.registrationmodule = disabled
datefield.filter.datefieldmodule = enabled
ganttcalendar.ticketcalendar.ticketcalendarplugin = enabled
ganttcalendar.ticketgantt.ticketganttchartplugin = enabled
growl.notifier.* = enabled
growl.web_ui.growlpreferencepanel = enabled
trac.web.auth.loginmodule = disabled

[account-manager]
password_file = /data/svn/auth/.htpasswd
password_format = htpasswd
[ticket-custom]
dependencies = text
dependencies.label = Dependencies
dependencies.value =
due_assign = text
due_assign.label = Due to assign
due_assign.value = YYYY/MM/DD
due_close = text
due_close.label = Due to close
due_close.value = YYYY/MM/DD
include_gantt = checkbox
include_gantt.label = Include in GanttChart
include_gantt.value =

[gantt-charts]
date_format = %Y/%m/%d
include_summary = true
show_opened = true
summary_length = 16
use_creation_date = true

[growl]
sources = wiki, ticket, attachment, bitten
hosts =
userprefs = true

[datefield]
format = ymd
separator = /

[ticket-custom]
complete = select
complete.label = % Complete
complete.options = 0|5|10|15|20|25|30|35|40|45|50|55|60|65|70|75|80|85|90|95|100
complete.order = 3
due_assign = text
due_assign.label = Start (YYYY/MM/DD)
due_assign.order = 1
due_assign.date = true
due_assign.date_empty = true
due_close = text
due_close.label = End (YYYY/MM/DD)
due_close.order = 2
due_close.date = true
due_close.date_empty = true


注意:
trac.web.auth.LoginModule = disabled 这句话的意思是禁用trac的登陆模块功能,如果你禁用掉http的认证功能,那么就需要把这句话设置为 trac.web.auth.LoginModule = enabled;

 

 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
No comments yet.