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>。

如:http://192.168.1.1:9999/svn

会提示你输入用户名密码。

9.总结

嗯,没啥太多总结,这些内容都是我从网上综合多个帖子试验出来的结果,希望能给你一些帮助。

Linux中基于apache httpd的svn服务器搭建与配置的更多相关文章

  1. 基于SSL加密的vsftpd 服务器搭建和配置

    基于SSL加密的VSFTPD 服务器搭建和配置 1.安装 ubuntu系统:apt-get install vsftp lftp centos系统:yum install -y vsftpd ftp ...

  2. SVN服务器搭建和配置使用详解

    SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...

  3. Centos6.5 SVN服务器 搭建及配置

    现有的项目开发中,版本控制机必不可少.合理的使用版本控制可以提高开发效果,在保证项目是最新的同时,也提高了源代码的安全性. 工具/原料 接入Internet的一台Centos6.5Linux计算机 安 ...

  4. svn服务器搭建与配置

    http://www.cnblogs.com/armyfai/p/3985660.html

  5. 软件测试-Svn服务器搭建全过程-基于Centos6.7-64bit

    本文详细介绍了在CentOs6.7-64bit服务器上搭建SVN版本控制服务 工具准备 CentOs6.7-64bit操作系统:关闭linux防火墙:设置定固IP--DHCP(动态):安装系统过程中开 ...

  6. linux 中 svn 服务器搭建 重启

    鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...

  7. 基于腾讯Centos7云服务器搭建SVN版本控制库

    基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费空间 ...

  8. ​Linux下的SVN服务器搭建

    ​Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...

  9. Linux下的SVN服务器搭建

    鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...

随机推荐

  1. P3813 [FJOI2017]矩阵填数

    传送门 矩阵很大,但是发现 $n$ 很小,从这边考虑,对于一个一堆小矩阵放在一起的情况 考虑把每一块单独考虑然后方案再乘起来 但是这些奇怪的东西很不好考虑 所以暴力一点,直接拆成一个个小块 但是这样我 ...

  2. vue项目用webpack打包后跨域问题

    在app.js的最开始加上 app.all('*', (req, res, next) => { res.header("Access-Control-Allow-Origin&quo ...

  3. C#工具类之素数扩展类

    /// <summary> /// 素数帮忙类 /// 本类是从.net源码 类 internal static class HashHelpers 类里抽取相应的代码 /// https ...

  4. scrapy框架之(CrawlSpider)

    一.CrawlSpider简介 如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法? 方法一:基于Scrapy框架中的Spider的递归爬取进行实现(Request模块递归回调pa ...

  5. 牛客网Java刷题知识点之拥塞发生的主要原因、TCP拥塞控制、TCP流量控制、TCP拥塞控制的四大过程(慢启动、拥塞避免、快速重传、快速恢复)

    不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号:   大数据躺过的坑      Java从入门到架构师      人工智能躺过的坑          ...

  6. 使用nodejs 访问mongodb

    我使用了 express 框架 目录结构 db.js 文件 function connectionDB(hostname, port) { //注释地方暂时没有使用.是把官方代码照抄下来 // var ...

  7. TOJ 2452 Ultra-QuickSort

    描述 In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a se ...

  8. elasticsearch fitler查询例子

  9. 开源TSDB简介--Druid

    开源TSDB简介--Druid Druid是一个以Java编写的开源分布式列式数据存储. Druid的目标是快速提取大量事件数据,并提供低延迟的查询. 德鲁伊的名字来源于许多角色扮演游戏中的变形德鲁伊 ...

  10. [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 ...