博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
记一次CentOS6.4 安装SVN
阅读量:6548 次
发布时间:2019-06-24

本文共 4330 字,大约阅读时间需要 14 分钟。

  hot3.png

1、检查系统是否已经安装如果安装就卸载

rpm -qa subversion
yum remove subversion

2、安装

yum install  subversion

3、建立SVN库

mkdir -p /home/svn/repossvnadmin create /home/svn/repos

执行上面的命令后,自动建立repositories库,查看/home/svn/repos 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。 4、进入/home/svn/repos/上面生成的文件夹下,进行配置 authz文件配置 目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容

[/]afa4j = rwabs = rw

passwd文件配置 是添加用户名和密码文件,修改如下

[users]# harry = harryssecret# sally = sallyssecretafa4j = afa4jabs = abs123

svnserve.conf 文件配置 配置访问权限

[general]anon-access = noneauth-access = writepassword-db = passwdauthz-db = authzrealm = /home/svn/repos

5、启动svn

/etc/init.d/svnserve start

6、检查进程和监听端口

ps -ef |grep svn |grep -v greproot     23580     1  0 20:10 ?        00:00:00 /usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pidnetstat -antlp |grep :3690tcp        0      0 0.0.0.0:3690               0.0.0.0:*                   LISTEN      23580/svnserve

7、修改默认端口为20016 打开

vim /etc/init.d/svnserveargs="--daemon --pid-file=${pidfile} $OPTIONS --listen-port 20016"

找到这一行添加 --listen-port 20016

保存 8、重启

service svnserve restart ps -ef |grep svn |grep -v greproot     23580     1  0 20:10 ?        00:00:00 /usr/bin/svnserve --daemon --pid-file=/var/run/svnserve.pid --listen-port 20016netstat -antlp |grep :20016tcp        0      0 0.0.0.0:20016               0.0.0.0:*                   LISTEN      23580/svnserve

9、TortoiseSVN客户端连接测试 版本库URL svn://xxx.xxx.xxx:20016/home/svn/repos 弹出对话框输入前面添加的用户名密码 输入图片说明

10、SVN开启apache支持

root@ UAT测试环境 @mc1.domain.com:yum install httpd mod_dav_svnroot@ UAT测试环境 @mc1.domain.com:/home/svn/project#rpm -ql mod_dav_svn/etc/httpd/conf.d/subversion.conf/usr/lib64/httpd/modules/mod_authz_svn.so/usr/lib64/httpd/modules/mod_dav_svn.soroot@ UAT测试环境 @mc1.domain.com:/home/svn/project#htpasswd /home/svn/project/password kcwNew password:Re-type new password:Adding password for user kcwroot@ UAT测试环境 @mc1.domain.com:/home/svn/project#cat /etc/httpd/conf.d/subversion.confLoadModule dav_svn_module     modules/mod_dav_svn.soLoadModule 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 both:##   a) readable and writable by the 'apache' user, and##   b) labelled with the 'httpd_sys_content_t' context if using#   SELinux### 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#   # chcon -R -t httpd_sys_content_t stuff##
# DAV svn# SVNParentPath /var/www/svn## # Limit write permission to list of valid users.#
# # Require SSL connection for password protection.# # SSLRequireSSL## AuthType Basic# AuthName "Authorization Realm"# AuthUserFile /path/to/passwdfile# Require valid-user#
#
DAV svn #SVNParentPath /home/svn/project SVNPath /home/svn/project SVNListParentPath on AuthType Basic AuthName "Musingtec SVN Authorization" AuthUserFile /home/svn/project/password # Limit write permission to list of valid users. #
# Require SSL connection for password protection. # SSLRequireSSL Require valid-user #

重启apache后以 输入图片说明输入图片说明

这里说明如下

SVNParentPath:支持多个具备相同父目录的Subversion版本库。 SVNPath:只支持一个父目录的Subversion版本库

SVNPath /svn/repository/project1 #如果你想对每个项目单独配置,使用该项

SVNParentPath /svn/repository #设定一个根,所有项目均放在此目录下

并且, 如果设置为SVNParentPath .....,当访问 . 必须接着输入 ..

转自 apache2 里面的svn配置 <Location /svn/repository> DAV svn SVNPath /svn/repository #SVNParentPath /svn/repository #SVNListParentPath on

(此处配置你的版本库根目录) --注意这里不要是svnpath

AuthType Basic #(连接类型设置 基本验证) AuthName "Hello welcome to here"

(此处字符串内容修改为提示对话框标题)

AuthUserFile /svn/repository/conf/passwd

(此处修改为访问版本库用户的文件, 用apache 的htpasswd命令生成)

AuthzSVNAccessFile /svn/repository/conf/authz #(此处修改为访问版本库权限的文件) Require valid-user #("Require valid-user"告诉apache在authfile中所有的用户都可以访问。 </Location>

[groups] Admin=usr1 #/*这个表示admin群组里的成员 user1,user2 #Develop=u1, u2

#/*这个表示Develop群组里的成员 u1,u2 [repository:/] #/*这表示,仓库www的根目录下的访问权限 user1 = rw #/www仓库user1用户具有读和写权限 user2 = r #/ www仓库userl用户具只有读权限 #@develop=rw
#/*这表示 群 develop的成员都具有读写权限 [/] #/*这个表示在所有仓库的根目录下

  • = r #/*这个表示对所有的用户都具有读权限

转载于:https://my.oschina.net/kcw/blog/756834

你可能感兴趣的文章
Android网络框架实现之【Retrofit+RxJava】
查看>>
Android文件的加密与解密
查看>>
【原】记录一句话
查看>>
Android标题栏,状态栏
查看>>
java笔记:SpringSecurity应用(二)
查看>>
php记录代码执行时间
查看>>
简简单单几段代码让自己变成最合格的网站管理员
查看>>
Slim Text 0.0.9 发布, 代码开源!
查看>>
[置顶] 遵循Java EE标准体系的开源GIS服务平台之二:平台部署
查看>>
Java递归算法——阶乘
查看>>
Multi-voltage和power gating的实现
查看>>
JavaScript面向对象 ~ 原型和继承(1)
查看>>
spring cloud微服务分布式云架构--hystrix的使用
查看>>
解决Mac启动Eclipse Memory Analyzer报错问题
查看>>
自己写的进度条###
查看>>
实现批量添加20个用户,用户名为user1-50,密码为user后面跟5个随机字符
查看>>
Net命令详解
查看>>
00.java虚拟机的基本结构概念
查看>>
ThreadLocal使用出现的问题
查看>>
连接池并发的实现原理
查看>>