灯火阑珊处,转角消失的背影
分类: 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
fzm = 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服务器,使用的是两套密码认证文件。
网络参考文档: