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
结果就成功了!
以上是我自己实践的一个记录,^^
分享到:
相关推荐
### Windows下SVN + Apache搭建SVN服务器 在软件开发过程中,版本控制系统是必不可少的工具之一,它能够帮助团队高效地管理代码版本、合并更改以及追踪历史记录等。其中,Subversion (SVN) 是一个非常流行的集中式...
Linux环境下搭建Subversion(简称svn)服务器,主要涉及到两个方面:一是Subversion自身服务的搭建,二是与Apache服务器的集成。Subversion是一个开源的版本控制系统,用于跟踪文件和目录的变更,便于团队协作开发。...
通过以上步骤,你可以搭建起一个基于 Subversion、Apache 和 TortoiseSVN 的版本控制系统,为团队协作提供便捷的代码版本管理。在实际应用中,可能还需要根据项目需求进行更详细的权限设置和日志管理。
本篇主要讨论如何利用Subversion、Apache、Jsvnadmin和Jenkins搭建一个高效的持续集成环境。 首先,Subversion(SVN)是开源的版本控制系统,用于跟踪项目中的文件和目录变更,便于团队协作。安装Subversion需要...
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 下载地址:...
Apache HTTP Server是搭建SVN服务器的基础组件之一,其主要功能是提供Web服务。安装步骤如下: 1. **安装Apache服务**: ```bash yum -y install httpd ``` 2. **安装mod_dav_svn模块**:这是Apache服务器用于...
### Linux下搭建svn+apache知识点详解 #### 一、概述 在Linux环境下搭建Subversion (SVN) 和 Apache 的联合服务是一种常见的版本控制系统部署方案。通过Apache作为前端服务器,可以利用HTTP协议方便地进行SVN仓库...
"Subversion + Apache" 是一个常见的版本控制系统与网络服务器的组合,用于管理和协作软件开发项目。...提供的源码包和文档可以帮助用户快速搭建和配置自己的SVN服务器,确保数据的安全和团队的高效协作。
本篇文章将详细介绍如何在Linux操作系统上搭建基于HTTPS的SVN服务器,以确保数据传输的安全性。HTTPS协议结合SSL/TLS加密技术,能够提供安全的网络通信环境。 首先,我们来了解一下操作系统的部分。在Linux环境下,...
在Ubuntu环境下搭建SVN(Subversion)服务器,结合Apache HTTP服务器和SSL(Secure Sockets Layer)加密,能够实现安全的版本控制系统,并通过HTTPS协议进行访问。Apache的用户认证管理确保了权限控制,而authz配置...
在SVN服务器配置完成后,你可以设置一个自动化的发布流程,这通常包括版本控制、代码构建、测试和部署。例如,你可以使用钩子脚本来自动触发构建过程,当开发者提交代码到SVN仓库时,这些脚本会检查代码、构建可部署...
在Linux CentOS系统中,Apache(也称为HTTP Server)与Subversion(SVN)的集成是...整个过程需要对Linux系统、Apache服务器以及Subversion有一定了解,但遵循上述步骤,你可以成功地搭建一个功能完备的SVN服务器。
通过以上步骤,你已经在Windows 7上成功搭建了一个基于Apache的SVN服务器,并安装了方便的TortoiseSVN客户端。这个环境将为你的团队提供一个可靠的代码版本管理平台,提升协作效率,保障项目数据的安全。在实际应用...
总的来说,这个过程涵盖了服务器基础设施搭建的基础环节,对于任何希望搭建一个功能齐全的Web开发环境的IT专业人员来说,都是必要的技能。每个步骤都需要细致的规划和配置,以确保服务的安全性和稳定性。
本文将详细介绍如何结合Apache服务器搭建一个基于Trac的bug跟踪系统。 首先,我们需要了解Trac的核心组件。Trac是一款用Python编写的Web应用,它通过与Subversion的集成,可以展示代码仓库的变更历史,并关联这些...
搭建一个SVN(Subversion)服务器,整合Apache作为前端HTTP服务器,可以实现高效且安全的代码版本控制。这个过程涉及到多个组件的安装和配置,包括Apache、Subversion、SSL加密以及必要的依赖库。以下是详细步骤: ...
本教程将详细讲解如何在Windows XP操作系统上,利用Apache2.2和Subversion 1.6.17搭建一个版本控制服务器。 首先,我们需要安装Subversion。文件"Setup-Subversion-1.7.5.msi"是一个Subversion的安装程序。运行这个...
使用`svnadmin create`命令创建仓库,然后通过`svnserve`或Apache HTTPD服务来运行SVN服务器。 5. Jenkins 搭建 Jenkins是流行的持续集成工具,负责自动化构建、测试和部署。 5.1 下载 Jenkins:从Jenkins官方网站...