`
bevis.cn
  • 浏览: 153902 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Subversion+apache搭建svn服务器

阅读更多
1.安装subversion 和subversion-tools
#aptitude install subversion subversion-tools

安装完成后,用如下命令应该可以看到相关的帮助
#svn help

2.新建库代码存储库,也就是常说的代码仓库,以后的项目可以上传到这个仓库里
假设我现在要把我的库仓库在/data/svn目录下,库名为:repository

#mkdir /data/svn
#svnadmin create /data/svn/repository
此时已经在/data/svn目录下创建一个名为repository的空库

然后用如下命令查看这个库里的内容
#svn list file:///data/svn/repository
可以发现里面空的

到第2步为止,subversion的安装,建库已经完成。
但是一般都是搭配apache,这样才可以用http协议来访问subversion,
这里我们选择apache2

3.安装apache2和libapache2-svn
#aptitude install apache2
#aptitude install libapache2-svn


chown -R www-data.www-data /data/svn

4.修改apche2的配置文件
#vim /etc/apache2/mods-available/dav_svn.conf
打开这个文件后,发现这个文件里的内容全被注释掉了,把注释拿掉,留下如下部分
<Location /svn>
DAV svn
SVNParentPath /data/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
Require valid-user
</Location>

对此文件做一个解释:
SVNParentPath /data/svn,这里的/data/svn为你刚建的svn代码仓库的代目录,也就是repository的你目录/data/svn

AuthUserFile /etc/apache2/dav_svn.passwd:因为我们登陆svn的时候需要用户名和密码的验证,我们会把所有用户的用户名和密码存储在/etc/apache2/dav_svn.passwd这个文件里,然后当用户访问的时候会首先把用户的用户名和密码与dav_svn.passwd里的信息进行对比

AuthzSVNAccessFile /etc/apache2/dav_svn.authz:如果用户名密码验证过后,就要对目录进行验证。所谓 目录进行验证 就是说 一个代码仓库里可能有很多项目,很多目录,一些目录 可能只允许一部分可以read,都者一部分可以read ,write这些权限的配置信息就是保存在/etc/apache2/dav_svn.authz文件里

5.第4步有提到当一个用户登陆时,会把用户的用户名和密码与/etc/apache2/dav_svn.passwd里的内容进行对比,也就是说用户名和密码是存储在/etc/apache2/dav_svn.passwd这个文件里。那这些用户名和密码是怎么放进去的呢?

可以用apache2的一个生成用户名和密码的工具htpasswd进行,
假设要创建一个用户名为"bevisoft"的用户 ,命令行如下:
#htpasswd /etc/apache2/dav_svn.passwd bevisoft
然后会提示你输入密码.
这里要特别注意,这个命令还有一个参数 -c
也就是说
#htpasswd -c /etc/apache2/dav_svn.passwd bevisoft
"-c"的意思就是说创建/etc/apache2/dav_svn.passwd 这个文件。如果/etc/apache2/dav_svn.passwd 这个文件存在了,就不要用"-c"


6.第4步也有提到,关于目录里各个项目的权限的配置是保存在:/etc/apache2/dav_svn.authz这个文件
/etc/apache2/dav_svn.authz文件的格式如下:

[groups]
admin=bevisoft
project1group = user1,user2

[/]
*=
[repository:/]
*=
@admin=rw

[repository:/project1]
@project1group = rw
*=


对上面这个文件做一下解释:
紧跟[groups]后面的信息是创建群组,因为所有的成员基本都是以项目组的方式进行,一般一个项目组的所有成员都拥有相同的权限,这样对权限分配也会容易一些

[/]
*=
[repository:/]
*=
@admin=rw

[repository:/project1]
@project1group = rw
*=
这一段就是控制各个项目的权限:
svn代码库的根目录任何人都没有权限,所以用到
[/]
*=
而admin这个group里的成员有对repository仓库的所有项目的权限,所以用到
[repository:/]
*=
@admin=rw

project1这个项目只能是project1group的成员有read ,write的权限,所以用到
[repository:/project1]
@project1group = rw
*=

7. 做到以上6步后还差最后一步:因为我们是通过apache2来与subversion交互
那么我们要让apache2的用户www-data对subversion这个目录有操作权限
#chown -R www-data.www-data /data/svn/repository
我一般还会加一条:
#chown -R www-data.www-data /data/svn

因为在我在架apache2+subversion的时候,先是用
#chown -R www-data.www-data /data/svn
结果我访问不成功,后来又加了一句
#chown -R www-data.www-data /data/svn/repository
结果就成功了!

以上是我自己实践的一个记录,^^


2
0
分享到:
评论

相关推荐

    windows下svn+apache搭建svn服务器.docx

    ### Windows下SVN + Apache搭建SVN服务器 在软件开发过程中,版本控制系统是必不可少的工具之一,它能够帮助团队高效地管理代码版本、合并更改以及追踪历史记录等。其中,Subversion (SVN) 是一个非常流行的集中式...

    linux下subversion+apache server搭建

    Linux环境下搭建Subversion(简称svn)服务器,主要涉及到两个方面:一是Subversion自身服务的搭建,二是与Apache服务器的集成。Subversion是一个开源的版本控制系统,用于跟踪文件和目录的变更,便于团队协作开发。...

    subversion+apache+TortoiseSVN安装说明

    通过以上步骤,你可以搭建起一个基于 Subversion、Apache 和 TortoiseSVN 的版本控制系统,为团队协作提供便捷的代码版本管理。在实际应用中,可能还需要根据项目需求进行更详细的权限设置和日志管理。

    持续集成-Subversion+Apache+Jsvnadmin+jenkins

    本篇主要讨论如何利用Subversion、Apache、Jsvnadmin和Jenkins搭建一个高效的持续集成环境。 首先,Subversion(SVN)是开源的版本控制系统,用于跟踪项目中的文件和目录变更,便于团队协作。安装Subversion需要...

    中标麒麟离线搭建svn教程.rar

    subversion-1.8.18.tar.gz 下载地址:http://subversion.apache.org sqlite-autoconf-3190300.tar.gz 下载地址:http://www.sqlite.org apr-1.5.2.tar.gz,apr-util-1.5.4.tar.gz 下载地址:...

    搭建SVN + Apache 服务器

    Apache HTTP Server是搭建SVN服务器的基础组件之一,其主要功能是提供Web服务。安装步骤如下: 1. **安装Apache服务**: ```bash yum -y install httpd ``` 2. **安装mod_dav_svn模块**:这是Apache服务器用于...

    Linux下搭建svn+apache

    ### Linux下搭建svn+apache知识点详解 #### 一、概述 在Linux环境下搭建Subversion (SVN) 和 Apache 的联合服务是一种常见的版本控制系统部署方案。通过Apache作为前端服务器,可以利用HTTP协议方便地进行SVN仓库...

    subversion+apache

    "Subversion + Apache" 是一个常见的版本控制系统与网络服务器的组合,用于管理和协作软件开发项目。...提供的源码包和文档可以帮助用户快速搭建和配置自己的SVN服务器,确保数据的安全和团队的高效协作。

    https+linux+svn服务器搭建指导书.docx

    本篇文章将详细介绍如何在Linux操作系统上搭建基于HTTPS的SVN服务器,以确保数据传输的安全性。HTTPS协议结合SSL/TLS加密技术,能够提供安全的网络通信环境。 首先,我们来了解一下操作系统的部分。在Linux环境下,...

    ubuntu linux 配置svn+apache+ssl

    在Ubuntu环境下搭建SVN(Subversion)服务器,结合Apache HTTP服务器和SSL(Secure Sockets Layer)加密,能够实现安全的版本控制系统,并通过HTTPS协议进行访问。Apache的用户认证管理确保了权限控制,而authz配置...

    apache+mysql+php+svn自动发布服务器搭建.pdf

    在SVN服务器配置完成后,你可以设置一个自动化的发布流程,这通常包括版本控制、代码构建、测试和部署。例如,你可以使用钩子脚本来自动触发构建过程,当开发者提交代码到SVN仓库时,这些脚本会检查代码、构建可部署...

    centos 下apache+svn安装.docx

    在Linux CentOS系统中,Apache(也称为HTTP Server)与Subversion(SVN)的集成是...整个过程需要对Linux系统、Apache服务器以及Subversion有一定了解,但遵循上述步骤,你可以成功地搭建一个功能完备的SVN服务器。

    Windows7+_SVN+_Apache2+TortoiseSVN配置安装

    通过以上步骤,你已经在Windows 7上成功搭建了一个基于Apache的SVN服务器,并安装了方便的TortoiseSVN客户端。这个环境将为你的团队提供一个可靠的代码版本管理平台,提升协作效率,保障项目数据的安全。在实际应用...

    服务器安装mysql+apache2+php+vsftp+svn

    总的来说,这个过程涵盖了服务器基础设施搭建的基础环节,对于任何希望搭建一个功能齐全的Web开发环境的IT专业人员来说,都是必要的技能。每个步骤都需要细致的规划和配置,以确保服务的安全性和稳定性。

    trac + apache +svn 跟踪系统

    本文将详细介绍如何结合Apache服务器搭建一个基于Trac的bug跟踪系统。 首先,我们需要了解Trac的核心组件。Trac是一款用Python编写的Web应用,它通过与Subversion的集成,可以展示代码仓库的变更历史,并关联这些...

    搭建SVN服务器(整合Apache+Subversion)

    搭建一个SVN(Subversion)服务器,整合Apache作为前端HTTP服务器,可以实现高效且安全的代码版本控制。这个过程涉及到多个组件的安装和配置,包括Apache、Subversion、SSL加密以及必要的依赖库。以下是详细步骤: ...

    xp+apache2.2+subversion1.6.17搭建版本控制服务器

    本教程将详细讲解如何在Windows XP操作系统上,利用Apache2.2和Subversion 1.6.17搭建一个版本控制服务器。 首先,我们需要安装Subversion。文件"Setup-Subversion-1.7.5.msi"是一个Subversion的安装程序。运行这个...

    持续集成环境maven+nexus+jenkins+svn搭建

    使用`svnadmin create`命令创建仓库,然后通过`svnserve`或Apache HTTPD服务来运行SVN服务器。 5. Jenkins 搭建 Jenkins是流行的持续集成工具,负责自动化构建、测试和部署。 5.1 下载 Jenkins:从Jenkins官方网站...

Global site tag (gtag.js) - Google Analytics