网上很多配置说明,但是没有指出最重要的几个易错点,导致很多人很容易遇到错误绕不过去
标准步骤:
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取得管理员权限,否则可能在提交代码的时候出现权限问题