1.首先安装svn
yum install subversion
2.安装httpd
yum install httpd
3.安装apache的svn操作模块
yum install mod_dav_svn openssl openssl-devel
4.查看svn版本
svnserve --version
5.创建svn版本库
mkdir -p /opt/svnrepos/code
svnadmin create /opt/svnrepos/code
6.进入svn的conf文件夹
cd /opt/svnrepos/code/conf
7.进入code 目录下的conf文件夹。将其中的authz与passwd文件复制到svnrepos目录
cp authz /opt/svnrepos/
cp passwd /opt/svnrepos/
8.修改code/conf下的svnserve.conf文件,将其中的passwd文件制定与authz文件制定进行修改(你的配置所在文件夹目录),其他配置按正常单svn配置。
#编辑配置文件
vim /opt/svnrepos/code/conf/svnserve.conf
#配置如下:
[general]
#禁止匿名用户访问
anon-access = no
#授权用户拥有读写权限
auth-access = write
# 使用公共的passwd
password-db = /opt/svnrepos/passwd
# 使用公共的authz
authz-db = /opt/svnrepos/authz
#指定版本库的认证域, code仓库路径/opt/svnrepos/code/
realm = /opt/svnrepos/code/
9.编辑svn用户配置文件
#进入配置文件
vim /opt/svnrepos/passwd
#配置如下:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
salley = 123456
10.编辑svn权限控制配置文件
#进入配置文件
vim /opt/svnrepos/authz
#配置如下:
[aliases]
[groups]
#用户组名=用户名
admin=admin
salley=salley
#表示根目录(/opt/svnrepos/),对全部版本库设置权限
[/]
#表示admin组对根目录有读写权限,r为读,w为写
@admin=rw
#表示code仓库根目录(/opt/svnrepos/code/)
[code:/]
#表示salley组对当前目录有读写权限,r为读,w为写
@salley=rw
11.防火墙开启(这里以iptable防火墻为例)
#进入防火墙配置
vi /etc/sysconfig/iptables
#添加配置信息
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
#保存退出
#重启防火墙使配置生效
systemctl restart iptables.service
12.启动svn服务器
#启动
svnserve -d -r /opt/svnrepos/
#启动成功后,可用ps -ef查看服务启动是否成功
ps -ef | grep 'svnserve'
#检查是否可以使用
svn co svn://ip地址:3690/xxxx
#关闭SVN方法:
#这里采取linux杀死进程的方式处理的
ps -ef|grep svnserve
root 4967 1 0 Aug23 ? 00:00:00 svnserve -d -r repository/
#这里 kill -9 4967杀死进程, 此4967为进程号
配置Apache支持HTTP访问
1.安装httpd,mod_dav_svn
#检查是否存在httpd,mode_dev_svn
httpd -v
ls /etc/httpd/modules/ | grep svn
#安装所需的包
yum install -y httpd mod_dav_svn
2.修改配置文件/etc/httpd/conf.d/subversion.conf(没有则新建).
#修改配置subversion.conf文件 没有则新建
vim /etc/httpd/conf.d/subversion.conf
#内容如下:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svnrepos>
DAV svn
SVNParentPath /opt/svnrepos/
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /opt/svnrepos/accesspolicy.conf
AuthUserFile /opt/svnrepos/svnusers.conf
Require valid-user
</Location>
#<Location /svn>”中的”/svn”表示我们的svn的访问URL为”http://ip/svn
#DAV svn”表示使用”mod_dav_svn”模块,dav是一种http 1.1扩展协议,mod_dav_svn只是该协议的一种应用。
#SVNParentPath /var/svn”表示服务”http://ip/svn”请求时,使用”/var/svn”路径下相应的内容。
#AuthName 表示输入用户名和密码时的提示信息
#AuthType 认证类型,这里我们使用基本的认证类型
#AuthUserFile 表示认证文件的位置,我们待会创建它。
#LimitExcept节点指示只对写请求需要用户认证。
3.使用htpasswd创建http登陆的账户密码
#先创建对应文件
touch /opt/svnrepos/svnusers.conf
#创建用户命令
htpasswd -c -m /opt/svnrepos/svnusers.conf admin
#输入两次密码
#htpasswd注解
#一个用户
htpasswd -c -m /opt/svnrepos/svnusers.conf admin
#多个用户
htpasswd -m /opt/svnrepos/svnusers.conf admin
#直接指定密码
htpasswd -mb /opt/svnrepos/svnusers.conf username password
4.创建存放用户访问路径的文件并设置权限
#先创建对应文件
vim /opt/svnrepos/accesspolicy.conf
#内容如下:
[groups]
admin = admin
salley = salley
[/]
*=r
@admin = rw
[code:/]
@salley = rw
5.修改目录权限进行Apache授权
chown -R apache:apache /opt/svnrepos/
6.重启Apache的服务
systemctl restart httpd.service
本文详细介绍如何在Linux环境下搭建SVN服务器,包括安装配置Subversion、Apache及相关模块,并通过http及svnserve方式访问版本库。
346

被折叠的 条评论
为什么被折叠?



