生产环境SVN完美部署文档

======================================================================================
环境:
Centos 5.5x86
svn-server:10.0.0.99
web-server:10.0.0.105
======================================================================================
一:svn-server安装

mkdir -p /tools/svn
cd /tools/svn
subversion-1.6.6.tar.gz
subversion-deps-1.6.6.tar.gz

root用户编译安装
--------------------------------------------------------------------------------------
tar xfvz subversion-1.6.6.tar.gz
tar xfvz subversion-deps-1.6.6.tar.gz
cd subversion-1.6.6
./configure --prefix=/usr/local/svn \
--without-berkeley-db
make
make install
cd ..

#测试是否安装成功
--------------------------------------------------------------------------------------
[root@jesse svn]# /usr/local/svn/bin/svnversion --version
svnversion, version 1.6.6 (r40053)
   compiled Feb 18 2012, 17:34:14

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
--------------------------------------------------------------------------------------
二:配置建立svn版本库目录可建多个

#建立svn数据目录和密码文件目录
mkdir -p /data/svndata
mkdir -p /data/svnpasswd

#建立svn版本库:
/usr/local/svn/bin/svnadmin create /data/svndata/develop

#修改svn版本库配置文件版本库:

vi /data/svndata/develop/conf/svnserve.conf
#--------------------------------------------------------------------------------------
[general]
anon-access = read
auth-access = write
password-db = /data/svnpasswd/passwd
authz-db = /data/svnpasswd/authz
[sasl]
# use-sasl = true
# min-encryption = 0
# max-encryption = 256
#--------------------------------------------------------------------------------------

配置SVN用户访问权限:
--------------------------------------------------------------------------------------
* 权限配置文件中出现的用户名必须已在用户配置文件中定义.
* 对权限配置文件的修改立即生效,不必重启svn.
用户组格式:
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔.

版本库目录格式:
[/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

方框号内部分可以有多种写法:

[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/data/svndata,[/]就是表示对全部版本库设置权限.
[/] 表示对版本库develop设置权限.
[/abc] 表示对版本库develop中的abc项目设置权限.
[/abc/aaa] 表示对版本库develop中的abc项目的aaa目录设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户.
权限可以是w、r、wr和空,空表示没有任何权限.
--------------------------------------------------------------------------------------

vi /data/svnpasswd/authz
#--------------------------------------------------------------------------------------
[groups]
develop=zhangly

[develop:/]
@develop=rw
*=
#--------------------------------------------------------------------------------------

vi /data/svnpasswd/passwd
#--------------------------------------------------------------------------------------
[users]
zhangly=654321
#--------------------------------------------------------------------------------------

三:启动svn建立启动svn的用户
groupadd develop
useradd -g develop www 
echo "654321"|passwd --stdin www && history -c

#允许用户svn访问版本库:
#chown -R svn:svn /data/svndata

#启动svn
#su - svn -c "/usr/local/svn/bin/svnserve -d --listen-port 9999 -r /data/svndata"
/usr/local/svn/bin/svnserve -d --listen-port 9999 -r /data/svndata

其中:
su -svn表示以用户svn的身份启动svn;
-d表示以daemon方式(后台运行)运行;
--listen-port 9999表示使用9999端口,可以换成你需要的端口.但注意,使用1024以下的端口需
要root权限,不加此参数的默认端口是3690.
-r /data/svndata指定根目录是/data/svndata

#检查:
[root@jesse svn]# ps -ef|grep svnserve
root 25441 1 0 18:14 ? 00:00:00 /usr/local/svn/bin/svnserve -d --listen-port 9999 -r /data/svndata

#加入开机启动项
echo '/usr/local/svn/bin/svnserve -d --listen-port 9999 -r /data/svndata' >> /etc/rc.local
--------------------------------------------------------------------------------------
至此,纯svn部署完毕!
posted @ 2014-11-25 21:38  study-notes  阅读(364)  评论(0编辑  收藏  举报