配置可以通过http协议访问的svn服务器
通过HTTP协议访问版本库是Subversion的亮点之一,这种方式具备许多svnserve服务器所没有的特性,使用上更加灵活。
关于mode_day_svn模块:
由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让Apache与Subversion协同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分布式创作和版本控制协议。WebDAV是HTTP 1.1的扩展,关于WebDAV的规范和工作原理,可以参考IETF RFC 2518。
mod_dav_san模块就是作为Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。
1.安装apache
yum install -y httpd
[root@localhost ~]# httpd -version
Server version: Apache/2.2.15 (Unix)
Server built: May 11 2016 19:28:33
2.安装mode_day_svn模块
yum install mod_dav_svn
前往 /etc/httpd/modules/ 下,检查是否包含mod_dav_svn.so和mod_authz_svn.so,如果有,mod_dav_svn安装成功。
3.将上篇博客的通过svn:协议访问的库,改成可以通过http协议访问
3.1将上次创建的repo0库的所有者改为apache
chown -R apache.apache /home/svn/repo0
3.2.修改apache的配置,将svn路径设置进来
需要激活Apache加载mod_dav_svn模块。修改/etc/httpd/conf.d/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
DAV svn
SVNPath /home/svn/repo0
然后重启apache服务器,访问浏览器可以看到:
4.授权和认证
上面定义的版本仓库,默认是任何人都可以匿名访问,并且拥有完全的写入、读取、修改、提交、删除版本库中信息的权限。
因此,我们需要加入认证信息以做权限的管理。HTTP协议版本就提供了简单的客户端认证方式,这可通过Apache配置完成。
4.1设置密码
Apache提供了一个htpasswd工具来管理,使用该工具可以创建一个文件,其中存放着用户名和加密后的密码信息。而这些就是Subversion可以引用的用户了,根据这些用户信息,配合mod_authz_svn模块即可进行目录的访问控制。
htpasswd -c /home/svn/svn.passwd xiajun
New password:
Re-type new password:
Adding password for user xiajun
还可以利用htpasswd添加用户,或修改密码,删除用户名等:
# htpasswd -m /home/svn/svn.passwd lisi
# htpasswd -m /home/svn/passwd OldUserName
# htpasswd -D /home/svn/passwd OldUserName
-m 是可选的参数,当用-c创建用户名信息文件后,即可修改或添加用户信息。
4.2将修改密码的文件加入apache的配置文件中
<Location /repos>
DAV svn
SVNPath /home/svn/repo0
# Limit write permission to list of valid users.
#<LimitExcept GET PROPFIND OPTIONS REPORT> #注意这个要注释掉(这样就只有我们制定的用户可以看到)否则所有的用户可以浏览下载
AuthType Basic #使用基本认证方式,即用户名、密码认证
AuthName "Authorization Realm" # 在认证对话框中出现的提示信息
AuthUserFile /home/svn/svn.passwd # 指定上面创建好的存放用户名信息的文件路径
Require valid-user # 限定只有用户输入正确的用户名和密码后才能访问该标签所指向的路径
#</LimitExcept>
</Location>
4.3 控制权限
主要用于控制哪些用户对于哪些目录有哪些权限:
vim /home/svn/accesspolicy.conf
写入内容如下:
### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
### - a single user,
### - a group of users defined in a special [groups] section,
### - an alias defined in a special [aliases] section,
### - all authenticated users, using the '$authenticated' token,
### - only anonymous users, using the '$anonymous' token,
### - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').
[groups]
team0=xiajun
team1=lisi
#注意表示这个库下面所有的东西都可以访问,用[repo0:/]这种方式不对,因为SVNPath是指向具体路径,如果apache里面的配置文件是指向SVNParentPath的话,才用[repo0:/]表示哪个库的路径
[/] #表示根目录及所有的的目录team0组有读写权限,而team1组只有读权限
@team0=rw
@team1=r
将这个权限控制文件的路径配置apache的配置文件里面
<Location /repos>
DAV svn
SVNPath /home/svn/repo0
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /home/svn/svn.passwd
Require valid-user
AuthzSVNAccessFile /home/svn/accesspolicy.conf
</Location>
然后重启apache,权限文件生效,可以访问,发现xiajun有读写权限,而lisi只有读权限。至此基本完成。
实例配置:
[root@localhost test]# 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 /repos>
DAV svn
SVNPath /svn/test
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /svn/test/svn.passwd
Require valid-user
# </LimitExcept>
</Location>
配置可以通过http协议访问的svn服务器的更多相关文章
- Apache Httpd + Subversion 搭建HTTP访问的SVN服务器
最近要搭建一个SVN服务器.简单安装之后,本地访问没有问题,但作为服务器肯定是需要HTTP访问.搜索之后,以下是我按照网上的资料搭建的过程,以备后用和参考.(所有软件安装步骤略,没有特殊的,如果没有特 ...
- Http协议访问DataSnap Rest 服务器
用TIDHttp访问DataSnap Rest服务器,在服务器采用了用户验证的情况下,客户端需要注意下面的细节,否则不能正常连接. 假如服务器有如下的用户验证: procedure TSC.DSAut ...
- centos7下配置iptables实现外网访问内网服务器
说明:Centos 7 默认的防火墙是 firewall,安装iptables之前需关闭Firewall 外网机器:外网ip:120.25.71.183内网ip:10.1.1.23 内网机器:内网ip ...
- centos7搭建SVN并配置使用http方式访问SVN服务器
一.检查SVN是否安装 centos7系统自带SVN # rpm -qa subversion [root@localhost ~]# rpm -qa subversion subversion--. ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- Linux下nginx配置https协议访问
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- Linux服务之nginx服务篇四(配置https协议访问)
一.配置nginx支持https协议访问 编译安装nginx的时候需要添加相应的模块--with-http_ssl_module和--with-http_gzip_static_module(可通过/ ...
- ubuntu下配置SVN服务器
自己买的阿里云服务器.可是我老感觉没有SVN上传代码下载代码太不方便!决定配置个SVN服务器! 1.安装Subversion $ sudo apt-get install subversion $ s ...
随机推荐
- nxlog4go 简介 - 基于log4go的下一代go语言日志系统
nxlog4go的项目网址: https://github.com/ccpaging/nxlog4go 项目历史 ccpaging's log4go forked from https://githu ...
- Codeforces 448 D. Multiplication Table 二分
题目链接:D. Multiplication Table 题意: 给出N×M的乘法矩阵要你求在这个惩罚矩阵中第k个小的元素(1 ≤ n, m ≤ 5·10^5; 1 ≤ k ≤ n·m). 题解: n ...
- 借助 Vue 来构建单页面应用
原文: https://github.com/MeCKodo/vue-tutorial 主题 Vue.js (1/2)Vue构建单页应用最佳实战 前言 我们将会选择使用一些vue周边的库 1.使用no ...
- LED服务总结
简单的程序总结 一个简单的用于控制LED屏幕的小程序,用到的一个常识 LED服务开发总结 系统运行截图 系统功能说明: 1.ServerStrack服务,提供前台访问. 2.动态库调用,用于信息转 ...
- JavaScript的三种类型检测typeof , instanceof , toString比较
1.typeof typeof是js的一个操作符,在类型检测中,几乎没有任何用处. typeof 返回一个表达式的数据类型的字符串,返回结果为javascript中的基本数据类型,包括:number. ...
- 关于win10企业版1607累积更新(KB4013429)安装失败后,个人的解决办法
最近连续一个多星期更新(1607-KB4013429)失败,更抓狂的是windows不厌其烦的,不断下载,不断更新,导致每天打开电脑都要等个十几分钟,看来不解决是不行了. 网上一查,有各种解决版本 1 ...
- Javascript学习--时钟
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 策略模式--List排序
需求:根据姓名进行排序,升序或者降序,如果名字一样,就按照id升序排序,用策略模式 步骤一: 定义一个Person对象 public class Person { private Integer id ...
- AMS常见问题
1.安装完AMS是否就可以实现直播点播了? 答:是的,ams运行后,就可以提供各种协议的直播输出地址,和点播地址:不过一般情况下客户还得需要另外的Web系统来配合使用,来完成对前台用户界面的友好化 ...
- eclipse启动报错the catalog could not be loaded please ensure that you have network access and if needed have configured your network proxy
搜索关键词不对在网上查了一圈没找到合适的解决办法 去看报错的日志文件 然并卵.不过下面有个config.ini,想着以前能用现在不能用,肯定是配置问题,打开该文件 转载请注明出处http://www. ...