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. 格子刷油漆(dp)-----------蓝桥备战系列

    标题:格子刷油漆 X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如图1所示),现需要把这些格子刷上保护漆. 你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但 ...

  2. BZOJ - 2844 线性基

    题意:求给定的数在原数组中的异或组合中的排名(非去重) 因为线性基中\(b[j]=1\)表示该位肯定存在,所以给定的数如果含有该位,由严格递增和集合枚举可得,排名必然加上\(2^j\)(不是完全对角就 ...

  3. 2019.3.20 I/O相关

    I/O 相关简介 什么是I/O? IO,即Input (输入)和Output (输出)的首字母缩写. 什么是流? 流(Stream)是抽象概念,它代表任何有能力产出数据的数据源对象或者是与能力接收数据 ...

  4. SQL Server Reporting Service(SSRS) 第七篇 常见错误汇总

    1. The current action cannot be completed. The user data source credentials do not meet the requirem ...

  5. (转)Linux基础------Shell数值计算的几种方法

    Linux基础------Shell数值计算的几种方法 原文:http://blog.csdn.net/fu_wayne/article/details/21620639 在Linux下总会遇到数值计 ...

  6. html5中新增的语义化的标签

    html5是html最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定.目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在互联网应用迅速发展的时候,使网络 ...

  7. 案例44-crm练习新增客户使用struts2

    1 src下配置文件 1 struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYP ...

  8. 生成正射影像/DSM,等高线提取

    工具:ContextCapture,Globe Mapper 方法/步骤: 1.新建项目,导入影像,提交空三运算 在ContextCapture中新建项目,添加相关影像或视频和其他相关资源,资源,提交 ...

  9. nyoj 1023——还是回文——————【区间dp】

    还是回文 时间限制:2000 ms  |  内存限制:65535 KB 难度:3   描述 判断回文串很简单,把字符串变成回文串也不难.现在我们增加点难度,给出一串字符(全部是小写字母),添加或删除一 ...

  10. JavaScript获取url参数

    声明:以下内容转自网络 方法一 String.prototype.getUrlString = function(name) { var reg = new RegExp("(^|& ...