Centos7安装SVN并配置HTTP访问

本文详细介绍如何在Linux环境下搭建SVN服务器,包括安装配置Subversion、Apache及相关模块,并通过http及svnserve方式访问版本库。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值