欢迎和大家交流技术相关问题:

邮箱: jiangxinnju@163.com

博客园地址: http://www.cnblogs.com/jiangxinnju

GitHub地址: https://github.com/jiangxincode

知乎地址: https://www.zhihu.com/people/jiangxinnju

背景说明

作为一个团队开发,公司长期以来的实践证明,手工操作版本管理是非常不明智的,一来浪费人力,二来效率低下,三来容易犯错。那么版本管理用什么工具好呢?

在开源世界中,CVS(ConcurrentVersions System)一直都是版本控制的首选。但是现在用户有了另一个选择,就是Subversion(SVN)。SVN是下一代版本控制系统,能替代 CVS,项目主页是http://subversion.tigris.org。

SVN是一个自由、开放源码、跨平台的版本控制系统。它是一个通用系统,可用来管理任何类型的文件,

其中包括程序源码。

它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到SVN上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。

SVN有两种运行方式,一种是基于Apache Http Server,另外一种是SVN Standalone Server。一般推荐使用基于Apache Http Server的SVN,这样做几个好处:

  • 能使用WebDAV(Web-based Distributed Authoring and Versioning)协议
  • 能使用浏览器作为客户端工具浏览源码仓库
  • 可以很容易的支持到SSPI(Security Support Provider Interface,Microsoft安全支持提供器接口即常说的Windows域认证)和LDAP(Lightweight Directory Access Protocol),这些都是Apache本身就支持的
  • 能得到比较完善的Apache安全认证系统,比如 SSL加密连接

考虑到公司同事基本上一直都是在Windows下过日子,所以考虑在Windows平台下搭建SVN,并且使用Windows域用户认证的方式管理SVN的权限配置,使用浏览器和TortioseSVN作为SVN的客户端,以进一步降低使用、管理门槛。

配置流程

安装配置域控制器

我用的是Windows2003企业版,配置域控制器比较简单,就不多说了。

安装Apache

到http://httpd.apache.com/下载最新版的Apache For Windows,我使用的版本是apache_2.0.52-win32-x86-no_ssl.exe,安装时选择以Windows服务方式运行。注意如果IIS已在运行,需要先关闭,或者更换端口。安装完成后用浏览器打开http://127.0.0.1/看是否能看到Apache的测试页。

安装SubVersion

到http://subversion.tigris.org/下载最新版的SVN,我使用的版本是svn-1.1.4-setup.exe,安装程序会提示将自动修改Apache的配置文件,不要相信它,安装程序自动修改的并不完整,接下来一定要按下面的步骤重新检查配置。

配置域用户认证

1、检查modules下是不是已经有了mod_dav_svn.so、mod_authz_svn.so和libdb42.dll三个文件,如果没有表示SVN没有安装正常,需要重新安装

2、打开confhttpd.conf文件

3、在httpd.conf中找到这三行:

LoadModule dav_fs_modulemodules/mod_dav_fs.so
LoadModule dav_svn_modulemodules/mod_dav_svn.so
LoadModule authz_svn_modulemodules/mod_authz_svn.so

把它们前面的注释号#删除

4、到http://tortoisesvn.tigris.org/mod_auth_sspi.zip下载最新版的SSPI模块,我使用的版本是mod_auth_sspi/1.0.1,解开压缩包后把其中的mod_auth_sspi.so文件放到modules目录下

5、在httpd.conf中找到行“LoadModule auth_module modules/mod_auth.so”,在其前一行加入“LoadModule sspi_auth_module modules/mod_auth_sspi.so”

6、现在我们假定要在c:svn目录中存放各种SVN文件库,分别为repos1、repos2…

7、在httpd.conf文件的末尾加上

DAV svn
SVNParentPath c:/svn
AuthzSVNAccessFile c:/svn/accessfilesspi
Require valid-user
AuthType SSPI AuthName "Subversion 文件库"
SSPIAuth On
SSPIAuthoritative On
SSPIDomain owl-2003.owl.local
SSPIOfferBasic On
  • "DAV svn"表示通过Apache Web Server根目录下的svn子目录可以访问"SVNParentPathc:/svn"中定义的目录下的SVN文件库的内容;
  • "AuthzSVNAccessFile c:/svn/accessfilesspi”表示"c:/svn/accessfilesspi"文件中定义了域用户与文件库资源权限控制的详细信息
  • "SSPIDomain owl-2003.owl.local"表示在我的机器上域控制器名称为:"owl-2003.owl.local"

AuthzSVNAccessFile定义的权限控制文件举例

#用户分组,以逗号分隔;用户名区分大小写;域用户用全称,即DOMAINUserName
[groups]
admins = OWLAdministrator
developers = OWLwater
docs = OWLyouwater
#管理员组拥有所有权限
[/]
@admins= rw
#开发人员可以完全控制源程序
[/myrepos]
@developers = rw
#文档人员可以完全控制文档
[/docs]
@docs = rw

8、保存httpd.conf,并重启Apache,随便用一个浏览器打开http://127.0.0.1/svn/docs测试一下吧。注意用户名输入是大小写敏感的,域用户需要输入全称。

安装TortioseSVN

到http://tortoisesvn.tigris.org/下载最新的TortioseSVN和中文包,我用的版本是TortoiseSVN-1.1.5-UNICODE_svn-1.1.4.exe、

LanguagePack_1.1.5_zh_CN.exe,TortioseSVN与Windows资源管理器集成在一起,重启系统后就可以使用了,首先打开资源管理器,在随意位置点击右键,选择TortioseSVN=>Setting,把语言改为简体中文,确定后生效。

参考内容

  • Apache管理手册
  • Subversion用户手册
  • TortioseSVN用户手册

SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化)的更多相关文章

  1. Nginx用户认证配置方法详解(域名/目录)

    Nginx超级强大它可以单独为一个域名设置用户认证,方法也很简单我们只要生成用户认证的用户名和密码,然后再Nginx添加auth认证配置即可 Nginx可以为某一个域名单独加用户认证,具体做法如下: ...

  2. centos LAMP第二部分apache配置 下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转 配置apache的访问日志 配置静态文件缓存 配置防盗链 访问控制 apache rewrite 配置开机启动apache tcpdump 第二十节课

    centos    LAMP第二部分apache配置  下载discuz!配置第一个虚拟主机 安装Discuz! 用户认证 配置域名跳转  配置apache的访问日志  配置静态文件缓存  配置防盗链 ...

  3. Linux服务器---配置apache支持用户认证

    Apache支持用户认证 为了服务器的安全,通常用户在请求访问某个文件夹的时候,Apache可以要求用户输入有效的用户名和登录密码 1.创建一个测试目录 [root@localhost cgi-bin ...

  4. apache的用户认证

    1. 限制用户访问的方式: 1. 限制访问服务的客户端主机 2. 需要用户名和密码 2. 行为用户验证需要两步: 1. 创建一个包含用户名和密码的文件 2. 服务器上的哪些资源需要保护,哪些用户可以进 ...

  5. Java利用jcifs集成AD域用户认证

    近期一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了如今网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我 ...

  6. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  7. Vue-cli3.x中使用Axios发送跨域请求的配置方法

    Vue-cli3.x中使用Axios发送跨域请求的配置方法 安装axios npm i axios -s main.js中引入 import axios from 'axios' //将axios挂载 ...

  8. WindowsServer域用户批量创建方法

    @font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...

  9. APACHE + LDAP 的权限认证配置方法

    原文地址:http://www.chinaunix.net/jh/49/627646.html 一.前言 很多朋友希望利用 Apache 通过 LDAP 进行用户认证及权限管理.     通过多次试验 ...

随机推荐

  1. spring记录

    context:property-placeholder 是将properties加载到Spring上下文中,接下来在定义bean的时候就能用${xx.xx}来访问了. util:properties ...

  2. Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

    Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://b ...

  3. http-2.4.18 安装

    编译最新的httpd 2.4.18     编译提示apr版本低于1.4 rpm repo源是1.39的 因此编译apr 下载 apr apr-util  apr-iconv [root@ansibl ...

  4. soap和http的区别

    Http get,post,soap协议都是在http上运行的1)get:请求参数是作为一个key/value对的序列(查询字符串)附加到URL上的查询字符串的长度受到web浏览器和web服务器的限制 ...

  5. Oracle 存储过程异常处理

    Oracle 存储过程异常处理 1.异常的优点    如果没有异常,在程序中,应当检查每个命令的成功还是失败,如  BEGIN  SELECT ...  -- check for ’no data f ...

  6. 《30天自制操作系统》16_day_学习笔记

    harib13a: 今天我们要继续折腾多任务,任务的高效管理是操作系统的一个重要的任务.在今天,我们将为系统创建更加完善的任务管理系统,其中包括优先级,任务等级等. 1.任务管理结构体 #define ...

  7. composer--------初体验,如何安装,如何下载

    最近PHP里面比较火的一款框架laravel,想学一下看下这个框架到底哪里好.这款框架的中文官网激励推荐composer,没办法就去学了一些composer.结果整了半天,还不如看一段短视频学的容易. ...

  8. 数据库中 dbo是什么意思

    亲当你在用sql 自动生成查询等sql 语句的时候 还记得 from 后边那一大串嘛 比如 [IWMS].[DBO].[CARTON] 一直我都对这个东西懵懵懂懂的 最近一直在学习存储过程,正好想起来 ...

  9. Excel应该这么玩——3、命名表格:彻底改造公式

    上一篇介绍了通过命名列将公式中的地址引用去掉,让公式更容易理解.但是之前的命名列只是针对单个表格的,如何引用其他表格的列是本篇的主要内容. 1.创建命名表格 命名表格的前提的创建表格,这个操作上一篇已 ...

  10. Android Studio的git功能的使用

    初次使用AS自带的git工具的配置 初次使用AS自带的git工具需要设置一些配置,如果你已配置过,可跳过该部分内容. 首先你需要下载git,然后打开AS的git设置,路径如下,选择你安装在你电脑上的g ...