Chinaunix首页 | 论坛 | 博客
  • 博客访问: 36759
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 58
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-01 23:30
个人简介

灯火阑珊处,转角消失的背影

文章分类

全部博文(11)

文章存档

2017年(1)

2015年(10)

我的朋友

分类: LINUX

2015-12-02 17:33:41

 

svn :开放源代码的版本控制系统

 

安装Apache以及Apache与svn相关的模块、svn

yum install httpd

yum install mod_dav_svn

yum install subversion 

验证安装是否成功

apache:

http -version
 

mod

ls /etc/httpd/modules/mod_dav_svn.so

ls /etc/httpd/modules/mod_authz_svn.so

 

svn:

svnserve --version

 

 

配置svn版本库

mkdir /wawo/svn  -p

 

cd      /wawo/svn

svnadmin create project        #project为项目版本库名称(注意)

 

chown -R apache.apache project        #修改版本库权限

 

vim project/conf/svnserve.conf 

[general]

### These options control access to the repository for unauthenticated

### and authenticated users.  Valid values are "write", "read",

### and "none".  The sample settings below are the defaults.

anon-access = none

auth-access = write 

设置svn://的访问方式需要认证,但是没有指定认证的密码文件和认证文件,也就是说禁止了svn://方式的访问。(文末作相关说明)

 

cp project/conf/authz /wawo/svn/    #权限管理文件

vi passwd

htpasswd /wawo/svn/passwd admin   #准备密码文件并添加一个用户admin , 添加fanguzming,fzm 用户

 

vim  /wawo/svn/authz 

[groups]

admin = admin 

[/]

@admin = rw 

[project:/docs]

fangzuming = rw

*  =  r

[project:/test]
@admin = rw
f
zm = rw
*  =   

 

说明:

 在[groups]下添加组,

[/]

相当于/wawo/svn这个目录,赋予权限给用户组

[project:/]

是指project

[project:/docs]

project下的desgin目录

 

权限说明:

xxx = rw

读写

xxx = r

* = r

其他人有读的权限

* =

其他人没有任何权限

注意修改passwd文件的权限 apache.apache  755

 

注意:版本库的目录不能是在liunx下使用mkdir创建目录,需要在svn中创建文件夹,即下载版本库后,创建文件及文件夹上传。

 

配置Apache

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 

#

# To create a new repository "" using

# this configuration, run as root:

#

#   # cd /var/www/svn

#   # svnadmin create stuff  

#   # chown -R apache.apache stuff

#   # chcon -R -t httpd_sys_content_t stuff

#

   DAV svn

   SVNParentPath /wawo/svn

      AuthType Basic

      AuthName "Authorization SVN"

      AuthzSVNAccessFile /wawo/svn/authz

      AuthUserFile /wawo/svn/passwd

      Require valid-user

注意:需要加载前面的两个模块,这两个模块是apache连接svn的关键

后面指定svn的位置、版本库、相关文件路径等配置

 

启动服务:

重启apache服务:

/etc/init.d/httpd restart

启动svn:

svnserve -d -r /wawo/svn

 

-d 表示以 daemon 方式(后台运行)运行

-r 指定根目录是/wawo/svn

--listen-port 8888  --表示在8888端口上进行监听

 

检查svn其否启动

ps -ef|grep svnserve 或 ps -ef|grep 8888 

 

测试访问:

project  版本库名

docs

 docs 目录名 

 

测试访问账户密码:

地址

账户

密码

权限

http://192.168.1.238/project/

admin

admin

rw

http://192.168.1.238/project/docs

fangzuming

fangzuming

rw

http://192.168.1.238/project/docs

fzm

fzm

r

 

windows为例:

 

客户端安装

TortoiseSVN-1.9.2.26806-x64-svn-1.9.2.msi 

创建文件夹----->右键---->svn Checkout

输入地址----->OK

输入账户、密码  ----->OK 

在该同步的文件夹中创建文件 

上传:  右键----->svncommit 

 

特别说明:

使用apache访问svn的账号和权限  与 TortoiseSVN客户端访问SVN的账号和权限 是分开的。

也就是说:

http:// 的访问方式读取的账户密码文件是配置文件 /etc/httpd/conf.d/subversion.conf指定的

svn:// 的访问方式读取的账户密码文件是配置文件  /项目版本库/conf/svnserve.conf中指定的

 

关于这两个文件指定的密码文件,有两点说明:

1、passwd文件格式不同。

svn的是明文密码,格式为 user = password

http为加密的密码,使用htpasswd命令添加用户 ,格式为  user:加密的密码串

 

2、authz认证文件的格式是一致的

 

故在本文档的使用中配置 apache+svn 只保留了http的访问方式。

 

若还要开启svn的访问方式:

需要编辑 /项目版本库/conf/svnserve.conf 配置文件

anon-access = none

auth-access = write

password-db = passwd      #指定 密码文件 路径

authz-db = authz                 #指定 认证文件 路径

 

说明:为避免和http的密码认证文件混淆,请尽量分开指定。

密码文件、认证文件按指定格式编辑即可。 

所以需要注意的是:

apache + svn 采用两种访问方式的svn服务器,使用的是两套密码认证文件。 

 

 

网络参考文档:

http://blog.csdn.net/huangshaotian/article/details/7087276 

http://my.oschina.net/u/206356/blog/287635

阅读(1553) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~