/ 中存储网

CentOS系统安装配置trac SVN Apache服务

2014-03-18 12:28:01 来源:itjs.cn
环境:

     发行版:centos 5.3-i386

     kernel:2.6.18-128.el5

1. 各文件设置及说明

SVN 配置文件目录: /etc/svn/

SVN 项目根目录: /svn/moko_src

Trac根目录: /trac/moko_src

Trac+SVN 用户密码文件: /etc/svn/account   (HTTP方式)

SVN 用户密码文件: /svn/moko_src/项目名称/conf/passwd   (SVN方式)

SVN 用户权限文件: /etc/svn/authz

服务器IP: 192.168.0.218

SVN 地址: http://192.168.0.218/svn            (http方式)

          svn://192.168.0.218/项目名称        (SVN方式)

Trac地址: http://192.168.0.218/trac

2.设置163.com开源镜像的yum,安装和升级包速度快!

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.bak

vim CentOS-Base.repo

输入:

[base]

name=CentOS-$releasever - Base

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#released updates 

[updates]

name=CentOS-$releasever - Updates

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates

#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/

baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#packages used/produced in the build but not released

[addons]

name=CentOS-$releasever - Addons

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons

#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/

baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras

#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/

baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

#additional packages that extend functionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus

#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/

baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/

gpgcheck=1

enabled=0

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

保存退出 (:wq)

3.安装必要的包

yum install -y openssl openssl-devel mod_ssl   apr apr-util sqlite python-sqlite libxml2-python mod_python python-devel python httpd mod_auth_mysql

(若64位服务器,一般在每个包名字后面加.x86_64  如果还是找不到相应包名称,用yum search 包名称,查询完整64位包名称)

创建相应文件和文件夹,赋予权限

mkdir -p /etc/svn                 (SVN 配置文件目录)

mkdir -p /svn/moko_src            (SVN 项目根目录)

mkdir -p /trac/moko_src           (Trac根目录)

touch /etc/svn/account            (Trac+SVN 用户密码文件)

touch /etc/svn/authz              (SVN 用户权限文件)

chown -R apache:apache /etc/svn   (所有者和组必须为apache,不然Trac无法更新配置文件)

4.通过yum安装Trac和相关包 

因为centos官方yum不包括Trac和相关包,通过第三方yum进行安装,所以这里要更改一下yum配置文件。trac包安装结束后,可以在改回来,163的yum国内最快

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.163

vim /etc/yum.repos.d/CentOS-Base.repo

[dag]

name=Dag RPM Repostory for RHEL

baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag/

gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt

gpgcheck=1

enabled=1

[kbs-CentOS-Misc]

name=CentOS.Karan.Org-EL$releasever - Stable

baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/

gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt

gpgcheck=1

enabled=1

保存退出 (:wq)

yum -y install subversion subversion-perl mod_dav_svn trac clearsilver python-clearsilver   (yum安装Trac和相关包)

vim /etc/httpd/conf/httpd.conf                       (编辑apache配置文件)

找到#ServerName www.example.com:80

改为

ServerName 192.168.0.218:80               (取消注释,www.example.com改为你的IP或域名,不改启动的时候报错但能运行)

在末尾处加入:

#set SVN           (设置SVN,http方式)

<Location /svn>

  DAV svn

  SVNParentPath /svn/moko_src

  Satisfy Any

# HTTP user login

  AuthType Basic

  AuthName "SVN Repository"

  AuthUserFile /etc/svn/account

  AuthzSVNAccessFile /etc/svn/authz

  Require valid-user

</Location>

#set Trac          (设置Trac)

<Location /trac>

  SetHandler mod_python

  PythonInterpreter main_interpreter

  PythonHandler trac.web.modpython_frontend

  PythonOption TracEnvParentDir /trac/moko_src

  PythonOption TracUriRoot /trac

# HTTP user login

  AuthType Basic

  AuthName "Trac Project"

  AuthUserFile /etc/svn/account

  Require valid-user

</Location>

保存退出   (:wq)

4.开始设定TracSVN

svnadmin create /svn/moko_src/pro                (创建SVN版本库,版本库名称为:pro)

chown -R apache:apache /svn/moko_src/pro         (用户和所有组必须为apache,否则trac无法写版本库里的文件)

htpasswd /etc/svn/account admin                  (创建一个名为admin的SVN用户)

trac-admin /trac/moko_src/pro initenv            (创建trac项目)

各项如下

Project Name [My Project]> pro         (项目名称:pro,这里最好和SVN版本库名一样,方便管理和记忆)

Database connection string [sqlite:db/trac.db]>  (这里直接回车,默认就是sqlite库)

vim /trac/moko_src/pro/conf/trac.ini             (修改trac配置文件)

找到

max_size = 1000000             (支持最大文件10M)

repository_dir = /svn/moko_src/pro               (这里要指定svn版本库的路径,必须指定!!!)

保存退出   (:wq)  

chown -R apache:apache /trac/moko_src/pro        (用户和所有组必须为apache,否则trac无法写项目里的文件)

安装eggs插件,不装无法使用,报错!!!

cd /tmp

wget http://peak.telecommunity.com/dist/ez_setup.py

python ez_setup.py

mkdir /var/www/.python-eggs

chown apache:apache  /var/www/.python-eggs

mkdir  /trac/moko_src/.egg-cache

chown apache:apache  /trac/moko_src/.egg-cache

以 easy_install 安装4个实用的Trac插件 (安bTrac0.12版的插件,部分0.11的也可用):

easy_install http://trac-hacks.org/svn/iniadminplugin/0.11

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

easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.12

easy_install http://trac-hacks.org/svn/svnauthzadminplugin/0.11

插件说明

IniAdmin: trac.ini 管理。

Account Manager: Trac 的用户管理。

TracWiki WYSIWYG Editor: 让Wiki编辑器变成WYSIWYG编辑器。

Svnauthz File Administration: SVN账号及权限管理

#####################################################################

(在Trac管理里只能设定http方式的,svn方式要另行手工设定。

/etc/svn/account和/svn/moko_src/项目名称/conf/passwd 

这两个文件的用户名和密码要相同,这样才能达到http和SVN两种方式的登录)

#####################################################################

编辑Trac的配置文件

vim /trac/moko_src/pro/conf/trac.ini

加入

[components]

webadmin.* = enabled

iniadmin.iniadmin.iniadminplugin = enabled

tracwysiwyg.* = enabled

svnauthz.* = enabled

acct_mgr.api.accountmanager = enabled

acct_mgr.htfile.HtPasswdStore = enabled

#close HTTP login

trac.web.auth.LoginModule = disabled

acct_mgr.web_ui.LoginModule = enabled

acct_mgr.admin.AccountManagerAdminPage = enabled

acct_mgr.web_ui.AccountModule = enabled

[account-manager]

password_format = htpasswd

password_file = /etc/svn/account

password_store = HtPasswdStore

找到[header_logo]区域

src='#'" /logo.gif  此参数设置LOGO,site/logo.gif换成site/logo文件名,本文档中/trac/moko_src/pro/htdocs/logo.gif

另外,还要在 [trac] 区域找到 "authz_file" 及 "authz_module_name" 这两个参数,分别设为:

authz_file = /etc/svn/authz   (SVN用户权限文件)

authz_module_name = pro       (要设定为SVN版本库名称) 

找到[trac]区域

default_charset = utf-8

###################################

这两个参数都和SVN的用户权限有关,"authz_module_name"  必须设定为SVN版本库的名称

"default_charset"这个参数,如果和你的版本库编码不同,改成Checkin到SVN版本库文件的相同编码即可。(这个我没该,我默认都是UTF-8的)

###################################

5. Trac的用户管理

通常先指定 Trac 的管理者、删除匿名访客权限、增加一个一般用户组,命令如下:

trac-admin /trac/moko_src/pro permission add admin TRAC_ADMIN     (增加admin为管理员)

trac-admin /trac/moko_src/pro permission remove anonymous '*'     (删除匿名访客权限)

增加一个一般用户组

trac-admin /trac/moko_src/pro permission add @user FILE_VIEW BROWSER_VIEW CHANGESET_VIEW

在Trac里,用户和组的命名及管理方式是没有区别,用粢部梢允亲椋所以,你也可以把第一个用户指定给第二个用户,第一个用户就会拥有第二个用户的相同的权限。上面的命令,新增了"@user"的组作为识别,并设定权限,只要把用户指定给 @user,就可以使用相同的权限。

修改/svn/moko_src/pro/conf/svnserve.conf 

vim /svn/moko_src/pro/conf/svnserve.conf

password-db = passwd       (这个密码文件里定义的用户名和密码要和 trac管理里定义的同步)

authz-db = /etc/svn/authz     (使用trac定义的权限文件)

anon-access=none

这样http和svn方式均可使用

7. 设置文成后,启动apache,SVN服务

service httpd start     (启动apache)   

chkconfig httpd on        (开机以服务方式启动apache)

########################################################

创建以服务方式启动SVN脚本

echo '#!/bin/bash' > /root/startsvn.sh

echo 'svnserve -d -r /svn/moko_src' >> /root/startsvn.sh

chmod +x /root/startsvn.sh

########################################################

echo '/root/startsvn.sh'  >> /etc/rc.d/rc.local    (开机自启动SVN服务)

#############################备注#################################

SVN 地址: http://192.168.0.218/svn/pro            (http方式)

          svn://192.168.0.218/项目名称        (SVN方式)

Trac地址: http://192.168.0.218/trac

用admin用户登录后,选择版本库名称,进行设置

不要忘记设置svn

点击右上角找到login,用admin登录

点击[Admin] 进入管理界面,其中:

1.General 下的"Permissions" 管理Trac用户使用权限

2.Account 下的"Users" 管理Trac及SVN的用 (/etc/svn/account)

3.Subversion 下的"Subversion Access" 管理SVN的路径存取权限及SVN用户组 (/etc/svn/authz)

除了新增用户(Users)及修改(Permissions)之外,你如果点菜单栏上的 [Browse Source] 系统会提示权限不足,现在任何用户都不能存取 SVN 版本库里的文件(http://192.168.0.218/svn/pro),因为"/etc/svn/authz" 这个文件是空的,必须到Trac 管理介面的"Subversion Access"设置让用粲涤卸列 "/"  这个路径的权限才行。

##################################################################

General 下的"Permissions" 权限参数解释

版本库浏览器

BROWSER_VIEW 在版本库浏览器中查看目录清单

LOG_VIEW 在版本库浏览器中查看文件和目录的修订日志

FILE_VIEW 在版本库浏览器中查看文件

CHANGESET_VIEW 查看版本库中的变更

传票系统

TICKET_VIEW 查看现有传票和执行传票查询

TICKET_CREATE 创建新的传票

TICKET_APPEND 为传票添加评论或附件

TICKET_CHGPROP 更改传票属性, 包括优先级, 指派到, 关键字等等(描述域除外)

TICKET_MODIFY 包括TICKET_APPEND和TICKET_CHGPROP. 另外, 允许解决传票

TICKET_EDIT_CC 更改抄送字段

TICKET_EDIT_DESCRIPTION 更改描述字段

TICKET_ADMIN 所有TICKET_*权限, 还有删除传票附件和描述域的更改

注意: 需要REPORT_VIEW权限以显示"查看传票"按钮.

路线图

MILESTONE_VIEW         查看里程碑

MILESTONE_CREATE 创建一个新里程碑

MILESTONE_MODIFY 修改现有里程碑

MILESTONE_DELETE 删除里程碑

MILESTONE_ADMIN         所有MILESTONE_*权限

ROADMAP_VIEW         查看路线图页面

ROADMAP_ADMIN         从#3022中删除, 由MILESTONE_ADMIN替换

报表

REPORT_VIEW 查看报表

REPORT_SQL_VIEW 查看报表的底层SQL查询

REPORT_CREATE 创建新报表

REPORT_MODIFY 更改现有报表

REPORT_DELETE 删除报表

REPORT_ADMIN 所有REPORT_*权限

Wiki系统

WIKI_VIEW 查看现有的Wiki页面

WIKI_CREATE 创建新的Wiki页面

WIKI_MODIFY 更改Wiki页面

WIKI_DELETE 删除Wiki页面和附件

WIKI_ADMIN 所有WIKI_*权限, 和只读页面的管理

权限

PERMISSION_GRANT 增加/授予权限

PERMISSION_REVOKE 删除/收回权限

PERMISSION_ADMIN 所有PERMISSION_*权限

其他

TIMELINE_VIEW 查看时间线页面

SEARCH_VIEW 查看和执行搜索查询

CONFIG_VIEW 启用关于Trac的附加页面, 显示现在的配置或已安装插件的列表

EMAIL_VIEW 显示邮件地址, 即使`trac show_email_addresses`配置项是`false`