【转】Ubuntu下搭建SVN环境-Apache
原文网址:http://www.cnblogs.com/candle806/archive/2012/12/20/2826280.html
环境描述:ubuntu server 12.04 / svn1.6 / apache2
1、先创建svn组和用户:
addgroud svn
useradd svn -g svn -m //新增svn用户名,-g并制定它所在的组svn,-m同时创建svn用户所在的home目录
passwd svn //设置svn用户的密码
2、安装apache2和svn server
sudo apt-get install apache2
sudo apt-get install subversion
sudo apt-get install libapache2-svn
完成以上安装,可以直接访问apache的主页,如http://localhost/
3、创建svn版本库
sudo mkdir /var/svn
sudo svnadmin create /var/svn/repos
此时可以在/var/svn/repos目录下看到svn版本库的所有文件夹以及配置文件,如:conf、db、format、hooks、locks、README.txt
4、配置并导入项目
sudo mkdir /opt/idbtest
sudo mkdir /opt/idbtest/branches
sudo mkdir /opt/idbtest/tags
sudo mkdir /opt/idbtest/trunk
导入项目到版本库:svn import /opt/idbtest file:///var/svn/repos/idbtest -m "initial import" // /opt/idbtest表示需要引入的项目,file:///var/svn/repos/idbtest表示svn的版本库,此处是做初始化引入
5、将svn配置到apache中通过http web方式访问
sudo vi /etc/apache2/apache.conf,将如下文件粘帖到apache.conf尾部,如下:
<Location /svn>
DAV svn
SVNPath /var/svn/repos
AuthzSVNAccessFile /var/svn/repos/conf/authz
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /var/svn/repos/conf/passwd
Require valid-user
</Location>
备注:此配置文件是告诉apache关于svn的访问路径已经相关配置文件,这里注意放问的跟目录。重启apache服务器,然后就可以通过http://localhost/svn进行远程访问
重启apache服务器:/etc/init.d/apache2 restart
当然这里需要验证访问登录用户,接下来将介绍添加svn用户
6、添加svn用户
htpasswd -c /var/svn/repos/conf/passwd test1 //然后会提示你输入密码,当然第一次创建svn用户,需要通过参数-c,然后第二次创建svn用户就不需要,这里要注意。
htpasswd /var/svn/repos/conf/passwd test2 //创建第二个svn用户
然后就可以通过这些用户访问http://localhost/svn了,并可以在其他pc上对svn进行checkout,命令行如下:
svn checkout http://localhost/svn --username test1 --password 123456
当然还可以通过svn客户端工具checkout更方便
7、遇到的问题
当我checkout到我的客户端时,在执行commit提交操作时,svn客户端报:svn: Can't open file '/var/svn/repos/testdemo/db/txn-current-lock': Permission denied
出现如上的错误时,此时就需要检查版本库的访问权限了,可能是版本库没有写的权限,且当前版本库的组和访问权限均是root,我们需要将版本库的组权限更改为svn组权限,如下名:
sudo chown -R svn:svn /var/svn/repos
sudo chmod 777 -R repos/*
再次进行commit提交,发现一切正常
8、用户权限控制
需要在apache的配置文件中增加如下配置,才能使得apache能够获取svn的权限配置,如下:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
svn的权限控制是通过目录结构来控制,控制权限在/var/svn/repos/conf/authz文件中,示例配置如下:
我的版本库下引入了目录testdemo,testdemo下有三个branches、tags、trunk,其中trunk下有app、doc、testdoc、devdoc
编辑 vi /var/svn/repos/conf/authz
[groups]
Admin=admin
Develop=dev1、dev2
Tester=test1,test2
[/] //表示版本库的根目录,admin拥有所有的读写权限
@admin=rw
[/testdemo/trunk] //表示版本库的根目录下的trunk文件下,表示develop拥有该文件夹下的读写权限
@develop=rw
[/testdemo/trunk/testdoc] //表示版本库的根目录下的trunk文件下,表示Tester拥有该文件夹下的读写权限,便是develop拥有可读权限
@tester=rw
@develop=r
以上的权限配置比较灵活,自己定义觉得,然后对于每一个角色控制其访问权限
附:为了更好的控制版本库做好配置管理,发现svn还是比较适合,所以就着手搭建了一个svn server。
【转】Ubuntu下搭建SVN环境-Apache的更多相关文章
- deepin/ubuntu下搭建Jekyll环境
title: deepin/ubuntu下搭建Jekyll环境 最近用github搭建了个博客,正好也学习一下markdown语法,由于markdown写完后不是立即可见,所以每次写完文章都要经过在线 ...
- ubuntu下搭建svn服务器
[ubuntu下搭建svn服务器] 1.创建目录 mkdir ~/svn/repository/ 2.创建仓库 svnadmin create repository 3.进入 repository/c ...
- Linux之旅-ubuntu下搭建nodejs环境
.NET Core也开源了,并且可移植到Linux下,而ubuntu作为linux发行版的翘楚,极大的方便了初学者的入门,搭建完ASP.NET Core运行环境后,作为半前半后的开发人员,就继续着搭建 ...
- Ubuntu下搭建WordPress环境
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用.WordPr ...
- Ubuntu下搭建Mininet环境
Mininet环境搭建分为两个步骤,如下: 1.从GITHUB上获取mininet源码到本地的opt目录下 打开Linux终端,切换目录到根目录 cd / 切换到Linux的opt目录下 cd opt ...
- Centos 下搭建SVN + Apache 服务器(转载)
安装软件包 ? 1 # yum install httpd ? 1 # yum install mod_dav_svn ? 1 # yum install subversion 2. 验证安装 ? ...
- ubuntu下搭建LAMP环境
本文参考:http://www.linuxdiyf.com/linux/21265.html 请支持原创. 步骤一:安装apache root@mrwang:~$ sudo apt install a ...
- Ubuntu下搭建ryu环境
RYU环境搭建总共四步: step1:首先下载相应的python套件,并且更新pip $ sudo apt-get install python-pip python-dev build-essent ...
- Centos7 下搭建SVN + Apache 服务器
1. 安装httpd 安装httpd服务: $ sudo yum install httpd 检查httpd是否安装成功: $ httpd -version Server version: Apach ...
随机推荐
- spring security 11种过滤器介绍
1.HttpSessionContextIntegrationFilter 位于过滤器顶端,第一个起作用的过滤器. 用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个Secu ...
- C#中隐式类型本地变量var
在新接触的项目中,看到很多声明变量时用var.只记得在javascript中声明变量用var.今天在家里看C#和.Net高级编程,看到隐式变量这一块,就总结一下C# 中隐式变量var的用法. 1.C# ...
- Nico Game Studio 3.地图纹理编辑 物体皮肤编辑
完成功能: 1.地图纹理编辑功能. 图层编辑,添加/删除纹理,地图编辑.网格绘制.
- [日历] C#修改CNDate日历帮助类 (转载)
点击下载 CNDate.rar 主要功能如下 .传回公历y年m月的总天数 .根据日期值获得周一的日期 .获取农历 #region 私有方法 private static long[] lunarInf ...
- hadoop_并行写操作思路
这篇文章是关于,如何修改hadoop的src以实现在client端上传大文件到HDFS的时候, 为了提高上传的效率实现将文件划分成多个块,将块并行的写入到datanode的各个block中 的初步的想 ...
- cas系列(一)--cas单点登录基本原理
(这段时间打算做单点登录,因此研究了一些cas资料并作为一个系列记录下来,一来可能会帮助一些人,二来对我自己所学知识也是一个巩固.) 一.为什么要实现单点登录 随着信息化不断发展,企业的信息化过程是一 ...
- 在CentOS6.0上安装Oracle 11gR2 (11.2.0.1)以及基本的配置(一)
首先安装CentOS6.0 就不用说了.安装即可.唯一需要注意的就是后面Oracle 11G Installation guide中的Checking the Software Requireme ...
- javascript入门学习笔记2
JavaScript 拥有动态类型.这意味着相同的变量可用作不同的类型: 实例 var x // x 为 undefined var x = 6; // x 为数字 var x = "Bil ...
- 使用Eclipse把java文件打包成jar 含有第三方jar库的jar包
使用Eclipse把java文件打包成jar 含有第三方jar库的jar包 网上打包说用eclipse安装fat jar插件,但是貌似现在都不能用了,所以我只能按照eclipse自带的方法打包了. ...
- Windows phone 之Image控件
wp目前支持的图片格式为png和jpeg ,我们可以通过设置Source属性设置图片源. 还有两个属性是:Stretch,Opacity Stretch属性 image的拉伸行为有此属性决定,此属性是 ...