SVN有几种方式进行访问,比较常见的是通过自带协议访问(svn://),配置很简单,还有一种就是http协议访问,需要结合apache服务,配置相对繁琐。
安装svn
yum -y install subversion
创建仓库DEV
mkdir /opt/svnsvnadmin create /opt/svn/DEV
配置用户和权限
1. 增加用户和密码
在/opt/svn/DEV/conf已经有passwd和authz配置文件了,但是如果将来需要建立多个版本库时就不方便了,建议建立统一的passwd和authz配置文件。
vim /opt/svn/passwd
[users]svndmin = 123456user1 = 123456user2 = 123456
2.配置权限和用户分组
vim /opt/svn/authz
[groups] #建立dev和admin两个分组 dev = uesr1,user2admin = svnadmin[/] @dev = r@admin = rw * = #表示其它用户没有任何权限[/] #对单个用户授权user1 = rw * =
3.配置svnserve.conf
vim /opt/svn/DEV/conf/svnserve.conf
[general]anon-access = noneauth-access = writepassword-db = /opt/svn/passwdauthz-db = /opt/svn/authzrealm = DEV
4.启动和关闭SVN服务
killall svnservesvnserve -d -r /opt/svn/DEV
测试连接:
svn co svn://localhost/DEV
会提示输入用户名和密码,并下载该版本,至此使用svn协议访问的方式就安装完成。
========================================================================
二、使用Http方式访问
1. 安装apache和openssl和相关模块
yum install httpd httpd_devel mod_dav_svn mod_ssl openssl mod_auth_mysql
确认安装如下模块:
ls /etc/httpd/modules/|grep svnmod_authz_svn.somod_dav_svn.so
2. 新增http的验证用户
创建http的用户和密码文件,增加用户两个用户
注意第一次使用需要-c,后面再增加用户一定不要增加-c,否则会把以前的用户全删除。
上述需要注意的是:/opt/svn/svn_http_passwd不应该与svn共同使用一个用户文件,原因是httpd与svn用户都是单独的,前者会对用户文件中的密码进行加密,后者则不会加密。authz文件是可以共用的。
3.配置访问的虚拟主机
vim /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.soDAV svn SVNParentPath /opt/svn/ SVNListParentPath on AuthType Basic AuthName "Authorization Realm" AuthUserFile /opt/svn/svn_http_passwd AuthzSVNAccessFile /opt/svn/authz Require valid-user
4.重启httpd服务,并进行访问
service httpd restart
http://IP/svn/DEV
三、使用https方式访问
制作证书,得到证书和私钥
参考:
修改:
vim /etc/httpd/conf.d/ssl.conf
#SSLCertificateFile /etc/pki/tls/certs/localhost.crtSSLCertificateFile /etc/httpd/ssl/httpd.crt#SSLCertificateKeyFile /etc/pki/tls/private/localhost.keySSLCertificateKeyFile /etc/httpd/ssl/httpd.key
vim /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.soDAV svn SVNParentPath /opt/svn/ SVNListParentPath on AuthType Basic AuthName "Authorization Realm" AuthUserFile /opt/svn/svn_http_passwd AuthzSVNAccessFile /opt/svn/authz Require valid-user SSLRequireSSL
重启httpd服务,就可以使用https的方法访问到SVN了