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

linux下配置svn服务器注意事项

2016-08-19 15:33 267 查看
网上很多配置说明,但是没有指出最重要的几个易错点,导致很多人很容易遇到错误绕不过去

标准步骤:

1. 关闭防火墙iptables和selinux:

(http://www.2cto.com/Article/201305/208291.html)
1. 永久有效
修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然后重启。
2. 即时生效
setenforce 0
 
关闭防火墙的方法为:
1. 永久性生效
开启:chkconfig iptables on 
关闭:chkconfig iptables off
2. 即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop 
 
需要说明的是对于 Linux 下的其它服务都可以用以上命令执行开启和关闭操作
 
补充:
a. 防火墙还需要关闭ipv6的防火墙:
chkconfig ip6tables off
并且可以通过如下命令查看状态:
chkconfig --list iptables
b. selinux状态可以通过以下命令查看:
sestatus

2. 安装必须的软件包.

yum install subversion mysql-server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl* ntsysv vim-enhanced

说明:
subversion (SVN服务器)
mysql-server (用于codestriker)
httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)
sendmail (用于配置用户提交代码后发邮件提醒)
wget gcc-c++ make unzip perl* (必备软件包)
ntsysv vim-enhanced (可选)

3. 基本的SVN服务器配置

1,新建一个目录用于存储SVN所有文件,这里必须要跟其他用户的目录等级相同,不能把svn目录放到某个用户目录下
# mkdir /home/svn

2,新建一个版本仓库
# svnadmin create /home/svn/gem5

3,初始化版本仓库中的目录
# svn import gem5-source-code   file:///home/svn/gem5 -m “first import”

4,添加用户
要添加SVN用户非常简单,只需在/home/svn/gem5/conf/passwd文件添加一个形如“username=password”的条目就可以了

[users]zhangqianlong = 123

5,修改用户访问策略
/home/svn/gem5/conf/authz记录用户的访问策略,以下是参考:

[groups]
gem5-dev = zhangqianlong

[project:/]
@gem5-dev = rw
* =

说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!

6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:

[general]
anon-access = none
auth-access = write
password-db = /home/svn/gem5/conf/passwd
authz-db = /home/svn/gem5/conf/authz

7,启动服务器
# svnserve -d -r /home/svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:

# ps -aux|grep svnserve
# kill -9 ID号
# svnserve -d -r /home/svn

8,测试服务器

# svn co svn://172.16.64.25/project
注意:这里给的路径没有写绝对路径,因为第7步已经制定了启动svn服务的路径,只需要接着那个往下写就行

常见问题:

1、checkout时,提示:URL svn://172.16.64.25/svntest doesn't exist...

原因:(1.) svn目录不要建立在某个人的home目录下!!!!
如果你把svn库目录放到/home/abc/svn
那么肯定会出现以上问题!!!!!
(2.)如果你的svn库的路径为:/home/svn/svntest
那么你启动时,不能用命令:

svnserve -d -r /home/svn/svntest
而要用命令:

svnserve -d -r /home/svn/

2.commit时,提示:Authorization failed

修改svnserve.conf:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

注意要定格写以上内容,没有空格

3. svn: No repository found in 'svn:..

svn服务未启动或者是启动的时候未指定svn仓库路径
使用如下命令:
sudo svnserve -d -r /var/svn
后面的目录是你svn服务的仓库路径
另外要使用sudo取得管理员权限,否则可能在提交代码的时候出现权限问题

参考网址:http://www.ha97.com/4467.html



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svn