[版本管理] SVN 加 Trac 在 apache 上的整合
转载本站文章请注明,转载自:扶凯[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;


















