您的位置:首页 > 运维架构 > Linux

CentOS 6.0安装配置subversion

2011-11-18 16:55 453 查看
环境:

a. 系统为centos 6.0

b. 分为svn协议和http协议方式

c. 使用svnadduser同时更新svn协议的密码文件和http协议的密码文件

1. 安装

# 安装subversion
yum install subversion
# 安装apache
yum groupinstall
# 安装mod_dav_svn模块
yum install mod_dav_svn

"Web Server"组中包含httpd的安装包

2. 配置apache

vi /etc/httpd/conf/httpd.conf
# 设置监听地址
Listen 192.168.1.11:8080
# 设置ServerName
ServerName 192.168.1.11:8080

3. 建立Svn

mkdir -p /data/subversion
cd /data/subversion
svnadmin create shell
chown -R apache:apache shell
# 权限文件和认证文件都放在以下目录
mkdir /data/subversion/conf

一定要改变所创建的Svn目录的拥有者为Web服务器运行的用户,否则出现不能写入这些权限错误,这里为apache

4. 使用svn协议

a. 编辑svn项目的配置文件,这个文件在用svnadmin创建的目录的conf子目录下

vi /data/subversion/shell/conf/svnserve.conf
# 匿名用户不能访问,认证用户具有写权限
anon-access = none
auth-access = write
# 设置权限和密码文件
password-db = /data/subversion/conf/passwd
authz-db = /data/subversion/conf/authz
# 认证登陆提示信息
realm = linuxjcq shell

b. 创建权限文件和用户名文件

cd /data/subversion/conf
# 配置权限:
vi authz
# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制
# 组成员用逗号分隔
[groups]
admin = jcq

# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]
[/]
@admin = rw
* =

# 配置用户名和密码
vi passwd
jcq = xxxxxx
……

c. 将svn添加为服务

vi /etc/sysconfig/subversion
# 文件中为启动要加的选项
OPTIONS="–listen-host 192.168.1.11 –listen-port 3690 -r /data/subversion -d"

vi /etc/rc.d/init.d/svnserve
#!/bin/bash
#
# /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon

# processname: svnserve

source /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

### Default variables
SYSCONFIG="/etc/sysconfig/subversion"

### Read configuration
[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0
prog="svnserve"
desc="Subversion Daemon"

start() {
echo -n $"Starting $desc ($prog): "
daemon $prog $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
echo
}

stop() {
echo -n $"Shutting down $desc ($prog): "
killproc $prog
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
*)
echo $"Usage: $0 { start|stop|restart|condrestart }"
RETVAL=1
esac

exit $RETVAL

chmod 0755 /etc/rc.d/init.d/svnserve
chkconfig –add svnserve
service svnserve start

也可以直接手动启动,例如:svnserve –listen-host 192.168.1.11 –listen-port 3690 -r /data/subversion -d

编辑/etc/rc.d/rc.local文件中加入这个启动命令

5. 使用http协议

a. 配置

vi /etc/httpd/conf.d/subversion.conf
# 确认这两行的存在
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

# 配置svn仓库
<Location /subversion>
DAV svn
SVNParentPath /data/subversion

<LimitExcept GET PROPFIND OPTIONS REPORT>
AuthzSVNAccessFile /data/subversion/conf/authz
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /data/subversion/conf/htpasswd.users
Require valie-user
</LimitExcept>
</Location>

b. 创建认证的文档,相当于使用svn协议时的passwd

htpasswd -cm /data/subversion/conf/htpasswd.users jcq
New password:
Re-type new password:

开始时你要利用 -cm 这个选项。它会创建文件并用 MD5 将口令加密。如果你需要加用户,请确定你只使用 -m 选项,而不包含初次创建时的 -c。

c. 创建权限文件

vi /data/subversion/conf/authz
# 添加组,可以根据项目需要分成管理员组,只读组,也可以按具体的子目录来分组,进行权限控制
# 组成员用逗号分隔
[groups]
admin = jcq

# 我想/data/subversion所有项目的svn库都使用同样的权限,所以使用[/path/to/access]的形式,如果想对具体项目进行权限控制可以使用[项目名:/path/to/access]
[/]
@admin = rw
* =


我的svn协议和http协议使用相同的权限控制文件

d. 启动apache

service httpd start


本文出自 “linuxjcq” 博客,请务必保留此出处http://linuxjcq.blog.51cto.com/3042600/718236
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: