LINUX下安装SVN服务器
2015年4月
1. 安装必要软件包
注:以下操作均在root用户下执行,root根目录。
2. 安装必要软件包
yum install subversion --SVN服务器
yum install mysql-server --用于codestriker
yum install httpd --WEB方式管理SVN服务器
yum install mod_dav_svn --WEB方式管理SVN服务器
yum install mod_perl --WEB方式管理SVN服务器
yum install sendmail --用于配置用户提交代码后发邮件提醒
yum install wget --一般都应该有,不需要装
yum install gcc-c++ --一般都应该有,不需要装
yum install make --一般都应该有,不需要装
yum install unzip --一般都应该有,不需要装
yum install perl* --一般都应该有,不需要装
yum install ntsysv --可选
yum install vim-enhanced --可选
3. 基本的SVN服务器配置
新建目录: mkdir /home/svn
新建版本仓库: svnadmin create /home/svn/project
初始化版本仓库中的目录:
建立临时目录:
mkdir project project/server project/client project/test
初始化SVN目录:
svn import project/ file:///home/svn/project -m “初始化svn目录”
删除建立的临时目录:
rm -rf project
4. 添加用户
cd /home/svn/project/conf/passwd
[users]
pm = pm_pw
server_group = server_pw
client_group = client_pw
test_group = test_pw
5. 修改用户访问策略
cd /home/svn/project/conf/authz
[groups]
project_p = pm
project_s = server_group
project_c = client_group
project_t = test_group
[project:/]
@project_p = rw
* =
[project:/server]
@project_p = rw
@project_s = rw
* =
[project:/client]
@project_p = rw
@project_c = rw
* =
[project:/doc]
@project_p = rw
@project_s = rw
@project_c = rw
* =
以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录 |
6. 修改svnserve.conf文件,生效配置
[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz
7. 启动服务器
svnserve -d -r /home/svn
8. 测试服务器
svn co svn://192.168.107.191/project
输入用户名、密码:pm/pm
9. 配置SVN服务器的HTTP支持
9.1.1. 转换svn服务器密码
cd /home/svn/project/conv/
新建perl文件:
vi PtoWP.pl
写入如下内容:
#!/usr/bin/perl
use warnings;
use strict;
#open the svn passwd file
open (FILE,"passwd") or die ("Cannot open the passwd file!!!\n");
#cleaer the apache passwd file
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n");
close (OUT_FILE);
#begin
foreach (<FILE>) {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`;
}
}
保存退出;
执行:
./PtoWP.pl
9.1.2. 修改httpd.conf
vi /etc/httpd/conf/httpd.conf
在最后写入如下文件:
<Location /project>
DAV svn
SVNPath /home/svn/project/
AuthType Basic
AuthName "svn for project"
AuthUserFile /home/svn/project/conf/webpasswd
AuthzSVNAccessFile /home/svn/project/conf/authz
Satisfy all
Require valid-user
</Location>
9.1.3. 启动HTTPD服务器
service httpd restart
9.1.4. 浏览器访问测试
http://192.168.107.191/project
10. 其他邮件等配置参照网址
http://www.linuxidc.com/Linux/2011-02/31914.htm