Linux中基于apache httpd的svn服务器搭建与配置
mod_dav_svn是apache连接svn的模块
yum install subversion mod_dav_svn httpd
配置文件简单说明,
SVNParentPath 说明可以在指定的目录下,创建多个SVN项目
-----------------------
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
#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn". Each repository
# must be readable and writable by the 'apache' user. Note that if
# SELinux is enabled, the repositories must be labelled with a context
# which httpd can write to; this will happen by default for
# directories created in /var/www. Use "restorecon -R /var/www/svn"
# to label the repositories if upgrading from a previous release.
#
#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
#
<Location /repos>
DAV svn
SVNParentPath /var/www/svn
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/passwdfile
Require valid-user
# </LimitExcept>
</Location>
-----------------------------
用apache自带的命令添加密码
[root@master1 www]# htpasswd -c /etc/subversion/passwdfile admin
New password:
Re-type new password:
Adding password for user admin
创建SVN的版本库
cd /var/www/svn
svnadmin create mytest0531
配置版本库相关文件
[root@master1 conf]# pwd
/var/www/svn/mytest0531/conf
[root@master1 conf]# ll
总计 24
-rw-r--r-- 1 root root 1080 05-31 16:05 authz
-rw-r--r-- 1 root root 309 05-31 16:05 passwd
-rw-r--r-- 1 root root 2279 05-31 16:05 svnserve.conf
配置文件说明
svnserve.conf 文件, 该文件配置项分为以下5项:
anon-access: 控制非鉴权用户访问版本库的权限。
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
passwd文件
password-db = passwd
authz-db = authz
authz文件
[users]
harry = harryssecret
sally = sallyssecret
authz文件
[groups]
harry_and_sally = harry,sally
[testsvn:/]
@harry_and_sally = rw
* = r
testsvn对应版本库名称,/对应svn的目录,/var/www/svn
启动svn
svnserve -d -r /var/www/svn
测试访问
http://192.168.0.209/svn/mytest0531
=======================================================================
SVN关于权限的测试
一个疑问:web访问的用户,具有什么权限??
httpd目录下关于svn的配置文件,admin测试用户只具有浏览权限。
subversion.conf,提供svn客户端访问svn的方式。
权限测试:
web用户
admin
svn客户端用户(svn配置文件中设置的用户)
user01
user02
user03
配置内容如下
[root@master1 conf]# cat svnserve.conf |grep -v '^#'|sed /^$/d
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
------------------------------
anon-access: 控制非鉴权用户访问版本库的权限。可以设置为write、read、none
auth-access: 控制鉴权用户访问版本库的权限。
password-db: 指定用户名口令文件名。
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
[root@master1 conf]# cat passwd |grep -v '^#'|sed /^$/d
[users]
user01 = user01
user02 = user02
user03 = user03
格式:用户名 = 密码
[root@master1 conf]# cat authz |grep -v '^#'|sed /^$/d
[aliases]
[groups]
user01 = user01
user02_03 = user02,user03
[mytest0531:/]
@user01 = wr
@user02_03 =r
[groups]分组选项
[mytest0531:/]对于mytest0531下的所有目录,user01具有读写权限,user02、user03具有读权限。
测试工具TortoiseSVN
1·安装TortoiseSVN
2·连接,在文件夹中右键,选择SVN Checkout...

3·选择OK

4·提示输入用户名和密码

5·输入不正确,不会有提示,但是也连接不上。可以重新输入。
6·用测试账号user02登录

7·将SVN的文件下载到本地的C:\Users\Ninglianjie\mytest0531目录下
8·将“新建文本文档.txt”删除,然后用user02上传,看结果如下:

选择SVN Commit,输入user02密码user02

9·用user01密码user01提交之后,结果如下

则可以正常删除。
10·用web浏览器浏览,如下
输入地址http://192.168.0.209/svn/mytest0531/
用户名admin,密码admin,“新建文本文档.txt”已经删除

4.建立启动svn的用户
|
1
2
3
4
|
[root@moshi ~]# useradd svn #如果提示svn账户已存在,则执行以下命令[root@moshi ~]# passwd svn ##根据提示修改下密码,不能过于简单,可使用常用密码[root@moshi ~]# chown -R svn:svn /home/svn/ ##允许用户svn访问版本库[root@moshi ~]# chmod –R o+rw /home/svn ##解决windows检出提交提示/home/svn/db/txn-current-lock’错误 |
5.配置svn的端口
|
1
|
[root@moshi ~]# vi /etc/httpd/conf/httpd.conf |
找到
#Listen 12.34.56.78:80这一行,
Listen 9999 ##9999就是svn的端口,默认是80,你可以修改成你自己想要的。不建议使用默认80端口
5.配置httpd
|
1
|
[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf |
修改文件内容为:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization"
AuthUserFile /home/svn/conf/pwd.conf ##对应你的用户配置文件
AuthzSVNAccessFile /home/svn/conf/authz.conf ##对应你的权限配置文件
Require valid-user
</Location>
保存退出!
重启httpd服务。
|
1
2
3
|
[root@moshi ~]# service httpd restart停止 httpd: [确定]正在启动 httpd: [确定] |
出现以上字样,表名httpd的配置已经成功启动成功。
6.启动svn
|
1
|
[root@moshi ~]# svnserve -d -r /home/svn/ |
7.查看svn服务是否正常
|
1
2
3
4
|
[root@moshi ~]# ps aux|grep svn##出现以下内容说明svn服务已经成功启动root 8610 0.0 0.0 152864 740 ? Ss 11:25 0:00 svnserve -d -r /home/svn/repos1/root 13128 0.0 0.0 103252 876 pts/0 S+ 14:00 0:00 grep svn |
8.进入浏览器访问。
在浏览器中输入:服务器Ip+端口+httpd配置中的<Location /svn>。
会提示你输入用户名密码。

9.总结
嗯,没啥太多总结,这些内容都是我从网上综合多个帖子试验出来的结果,希望能给你一些帮助。
Linux中基于apache httpd的svn服务器搭建与配置的更多相关文章
- 基于SSL加密的vsftpd 服务器搭建和配置
基于SSL加密的VSFTPD 服务器搭建和配置 1.安装 ubuntu系统:apt-get install vsftp lftp centos系统:yum install -y vsftpd ftp ...
- SVN服务器搭建和配置使用详解
SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...
- Centos6.5 SVN服务器 搭建及配置
现有的项目开发中,版本控制机必不可少.合理的使用版本控制可以提高开发效果,在保证项目是最新的同时,也提高了源代码的安全性. 工具/原料 接入Internet的一台Centos6.5Linux计算机 安 ...
- svn服务器搭建与配置
http://www.cnblogs.com/armyfai/p/3985660.html
- 软件测试-Svn服务器搭建全过程-基于Centos6.7-64bit
本文详细介绍了在CentOs6.7-64bit服务器上搭建SVN版本控制服务 工具准备 CentOs6.7-64bit操作系统:关闭linux防火墙:设置定固IP--DHCP(动态):安装系统过程中开 ...
- linux 中 svn 服务器搭建 重启
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
- 基于腾讯Centos7云服务器搭建SVN版本控制库
基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费空间 ...
- Linux下的SVN服务器搭建
Linux下的SVN服务器搭建 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总 ...
- Linux下的SVN服务器搭建
鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在搭建svn服务器时不再犯错,不再被网上漫天的坑爹作品所坑害,故此总结 /******开始****** ...
随机推荐
- XAML 绑定和结构体不得不说的问题
遇见一个问题 如果用一个结构体struct.再用一个ListView,然后使用绑定. <Window x:Class="WpfApp1.MainWindow" xmlns=& ...
- Oracle下lag和lead分析函数
[转自] http://blog.csdn.net/thinkscape/article/details/8290894 Lead和Lag分析函数可以在同一次查询中取出同一字段的前N行的数据(Lag) ...
- centos7.4 上面 docker 启动 cAdvisor 报错问题解决
2018-10-29 docker 启动 cAdvisor,操作系统CentOS7: docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/v ...
- 关于箭头函数的this指向问题
document.onclick = function(){ // 普通函数的this是在运行的时候才临时绑定的,也就是说,函数不运行,你绝对不可能知道this是谁 // 下面这个函数如果是自调用,t ...
- 利用httpClient发起https请求
HttpClientBuilder b = HttpClientBuilder.create();// setup a Trust Strategy that allows all certifica ...
- java判断jsonObject和jsonArray是否为空
resJsonObj = {"res":"0","msg":"","data":{"Nam ...
- Laplace变换要点
Laplace变换在求解微分方程.信号系统.自动控制领域都有重要作用.阅读<复变函数与积分变换>华中科大第三版,小结要点. 方便应用,最先给出变换表: 定义: 性质: 周期函数与卷积:
- shell 实现文件改名
修改文件名可以有不同的命令方式,mv 可以实现,但是使用rename 这种专业的改名字很好 对于单个的文件,可以直接使用以上的命令,那如果有大量的类似格式的文件名需要修改成其他格式的,该如何呢? 创建 ...
- 牛客网Java刷题知识点之OSI七层参考模型 和 TCP/IP五层参考模型
不多说,直接上干货! 福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 ...
- 03-struts2获得servetAPI
1 原理 三个域合一的时候相同的键值对以小的域为准.ActionContext 对象创建:每次请求的时候都会创建一个与请求对应的 ActionContext 对象.ActionContext 销毁:请 ...