Linux中基于apache httpd的svn服务器搭建与配置
mod_dav_svn是apache连接svn的模块
yum install subversion mod_dav_svn httpd
配置文件简单说明,
SVNParentPath 说明可以在指定的目录下,创建多个SVN项目
-----------------------
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
#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn". Each repository
# must be readable and writable by the 'apache' user. Note that if
# SELinux is enabled, the repositories must be labelled with a context
# which httpd can write to; this will happen by default for
# directories created in /var/www. Use "restorecon -R /var/www/svn"
# to label the repositories if upgrading from a previous release.
#
#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
#
<Location /repos>
DAV svn
SVNParentPath /var/www/svn
#
# # 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 /etc/subversion/passwdfile
Require valid-user
# </LimitExcept>
</Location>
-----------------------------
用apache自带的命令添加密码
[root@master1 www]# htpasswd -c /etc/subversion/passwdfile admin
New password:
Re-type new password:
Adding password for user admin
创建SVN的版本库
cd /var/www/svn
svnadmin create mytest0531
配置版本库相关文件
[root@master1 conf]# pwd
/var/www/svn/mytest0531/conf
[root@master1 conf]# ll
总计 24
-rw-r--r-- 1 root root 1080 05-31 16:05 authz
-rw-r--r-- 1 root root 309 05-31 16:05 passwd
-rw-r--r-- 1 root root 2279 05-31 16:05 svnserve.conf
配置文件说明
svnserve.conf 文件, 该文件配置项分为以下5项:
anon-access: 控制非鉴权用户访问版本库的权限。
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
passwd文件
password-db = passwd
authz-db = authz
authz文件
[users]
harry = harryssecret
sally = sallyssecret
authz文件
[groups]
harry_and_sally = harry,sally
[testsvn:/]
@harry_and_sally = rw
* = r
testsvn对应版本库名称,/对应svn的目录,/var/www/svn
启动svn
svnserve -d -r /var/www/svn
测试访问
http://192.168.0.209/svn/mytest0531
=======================================================================
SVN关于权限的测试
一个疑问:web访问的用户,具有什么权限??
httpd目录下关于svn的配置文件,admin测试用户只具有浏览权限。
subversion.conf,提供svn客户端访问svn的方式。
权限测试:
web用户
admin
svn客户端用户(svn配置文件中设置的用户)
user01
user02
user03
配置内容如下
[root@master1 conf]# cat svnserve.conf |grep -v '^#'|sed /^$/d
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
------------------------------
anon-access: 控制非鉴权用户访问版本库的权限。可以设置为write、read、none
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
[root@master1 conf]# cat passwd |grep -v '^#'|sed /^$/d
[users]
user01 = user01
user02 = user02
user03 = user03
格式:用户名 = 密码
[root@master1 conf]# cat authz |grep -v '^#'|sed /^$/d
[aliases]
[groups]
user01 = user01
user02_03 = user02,user03
[mytest0531:/]
@user01 = wr
@user02_03 =r
[groups]分组选项
[mytest0531:/]对于mytest0531下的所有目录,user01具有读写权限,user02、user03具有读权限。
测试工具TortoiseSVN
1·安装TortoiseSVN
2·连接,在文件夹中右键,选择SVN Checkout...

3·选择OK

4·提示输入用户名和密码

5·输入不正确,不会有提示,但是也连接不上。可以重新输入。
6·用测试账号user02登录

7·将SVN的文件下载到本地的C:\Users\Ninglianjie\mytest0531目录下
8·将“新建文本文档.txt”删除,然后用user02上传,看结果如下:

选择SVN Commit,输入user02密码user02

9·用user01密码user01提交之后,结果如下

则可以正常删除。
10·用web浏览器浏览,如下
输入地址http://192.168.0.209/svn/mytest0531/
用户名admin,密码admin,“新建文本文档.txt”已经删除

4.建立启动svn的用户
|
1
2
3
4
|
[root@moshi ~]# useradd svn #如果提示svn账户已存在,则执行以下命令[root@moshi ~]# passwd svn ##根据提示修改下密码,不能过于简单,可使用常用密码[root@moshi ~]# chown -R svn:svn /home/svn/ ##允许用户svn访问版本库[root@moshi ~]# chmod –R o+rw /home/svn ##解决windows检出提交提示/home/svn/db/txn-current-lock’错误 |
5.配置svn的端口
|
1
|
[root@moshi ~]# vi /etc/httpd/conf/httpd.conf |
找到
#Listen 12.34.56.78:80这一行,
Listen 9999 ##9999就是svn的端口,默认是80,你可以修改成你自己想要的。不建议使用默认80端口
5.配置httpd
|
1
|
[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf |
修改文件内容为:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization"
AuthUserFile /home/svn/conf/pwd.conf ##对应你的用户配置文件
AuthzSVNAccessFile /home/svn/conf/authz.conf ##对应你的权限配置文件
Require valid-user
</Location>
保存退出!
重启httpd服务。
|
1
2
3
|
[root@moshi ~]# service httpd restart停止 httpd: [确定]正在启动 httpd: [确定] |
出现以上字样,表名httpd的配置已经成功启动成功。
6.启动svn
|
1
|
[root@moshi ~]# svnserve -d -r /home/svn/ |
7.查看svn服务是否正常
|
1
2
3
4
|
[root@moshi ~]# ps aux|grep svn##出现以下内容说明svn服务已经成功启动root 8610 0.0 0.0 152864 740 ? Ss 11:25 0:00 svnserve -d -r /home/svn/repos1/root 13128 0.0 0.0 103252 876 pts/0 S+ 14:00 0:00 grep svn |
8.进入浏览器访问。
在浏览器中输入:服务器Ip+端口+httpd配置中的<Location /svn>。
会提示你输入用户名密码。

9.总结
嗯,没啥太多总结,这些内容都是我从网上综合多个帖子试验出来的结果,希望能给你一些帮助。
Linux中基于apache httpd的svn服务器搭建与配置的更多相关文章
- 基于SSL加密的vsftpd 服务器搭建和配置
基于SSL加密的VSFTPD 服务器搭建和配置 1.安装 ubuntu系统:apt-get install vsftp lftp centos系统:yum install -y vsftpd ftp ...
- SVN服务器搭建和配置使用详解
SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...
- Centos6.5 SVN服务器 搭建及配置
现有的项目开发中,版本控制机必不可少.合理的使用版本控制可以提高开发效果,在保证项目是最新的同时,也提高了源代码的安全性. 工具/原料 接入Internet的一台Centos6.5Linux计算机 安 ...
- svn服务器搭建与配置
http://www.cnblogs.com/armyfai/p/3985660.html
- 软件测试-Svn服务器搭建全过程-基于Centos6.7-64bit
本文详细介绍了在CentOs6.7-64bit服务器上搭建SVN版本控制服务 工具准备 CentOs6.7-64bit操作系统:关闭linux防火墙:设置定固IP--DHCP(动态):安装系统过程中开 ...
- linux 中 svn 服务器搭建 重启
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
- 基于腾讯Centos7云服务器搭建SVN版本控制库
基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费空间 ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- Linux下的SVN服务器搭建
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
随机推荐
- P3813 [FJOI2017]矩阵填数
传送门 矩阵很大,但是发现 $n$ 很小,从这边考虑,对于一个一堆小矩阵放在一起的情况 考虑把每一块单独考虑然后方案再乘起来 但是这些奇怪的东西很不好考虑 所以暴力一点,直接拆成一个个小块 但是这样我 ...
- vue项目用webpack打包后跨域问题
在app.js的最开始加上 app.all('*', (req, res, next) => { res.header("Access-Control-Allow-Origin&quo ...
- C#工具类之素数扩展类
/// <summary> /// 素数帮忙类 /// 本类是从.net源码 类 internal static class HashHelpers 类里抽取相应的代码 /// https ...
- scrapy框架之(CrawlSpider)
一.CrawlSpider简介 如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调pa ...
- 牛客网Java刷题知识点之拥塞发生的主要原因、TCP拥塞控制、TCP流量控制、TCP拥塞控制的四大过程(慢启动、拥塞避免、快速重传、快速恢复)
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 使用nodejs 访问mongodb
我使用了 express 框架 目录结构 db.js 文件 function connectionDB(hostname, port) { //注释地方暂时没有使用.是把官方代码照抄下来 // var ...
- TOJ 2452 Ultra-QuickSort
描述 In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a se ...
- elasticsearch fitler查询例子
- 开源TSDB简介--Druid
开源TSDB简介--Druid Druid是一个以Java编写的开源分布式列式数据存储. Druid的目标是快速提取大量事件数据,并提供低延迟的查询. 德鲁伊的名字来源于许多角色扮演游戏中的变形德鲁伊 ...
- [LeetCode]26. Remove Duplicates from Sorted Array删除排序数组中的重复项
Given a sorted array nums, remove the duplicates in-place such that each element appear only once an ...