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. MITx: 6.00.1x Introduction to Computer Science and Programming Using Python Week 2: Simple Programs 4. Functions

    ESTIMATED TIME TO COMPLETE: 18 minutes We can use the idea of bisection search to determine if a cha ...

  2. BZOJ - 3757 树上莫队解决离线路径问题 & 学习心得

    题意:给你一棵树,求u,v最短路径的XXX(本题是统计权值种类) 今天课上摸鱼学了一种有意思的处理路径方式(其实是链式块状树翻车了看别的),据说实际运行跑的比XX记者还快 大概就是像序列莫队那样 首先 ...

  3. 03-树2 List Leaves (25 分)

    Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. I ...

  4. CSS 单行 多行文本溢出显示省略号

    单行文本 overflow: hidden; text-overflow:ellipsis; white-space: nowrap; 多行文本溢出显示省略号: <style type=&quo ...

  5. android点击桌面App图标activity启动流程

    1.点击桌面App图标,Launcher进程采用Binder IPC向system_server进程发起startActivity请求:2.system_server进程接收到请求后,向zygote进 ...

  6. oracle 笔记---(三)__体系架构

    查看控制文件位置 SQL> show parameter control_files; NAME TYPE VALUE ------------------------------------ ...

  7. 配intelliJ IDEA 过程

    1.安装svn 选项全选择,命令行执行要选择上2.安装java jdk 配jdk环境变量3.安装intelliJ IDEA 地址:http://idea.imsxm.com4.注册intelliJ I ...

  8. TOJ 1023 Taxi Cab Scheme

    Description Running a taxi station is not all that simple. Apart from the obvious demand for a centr ...

  9. Android中dip, dp, px,pt, sp之间的区别:

    Android中dip.dp.sp.pt和px的区别   1.概述 过去,程序员通常以像素为单位设计计算机用户界面.例如:图片大小为80×32像素.这样处理的问题在于,如果在一个每英寸点数(dpi)更 ...

  10. php获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法

    php 获取今日.昨日.上周.本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime.下面首先还是直奔主题以示例说明如何使用 mktime 获取今日.昨日.上周.本月的起始 ...