SVN服务搭建

  SVN有几种方式进行访问,比较常见的是通过自带协议访问(svn://),配置很简单,还有一种就是http协议访问,需要结合apache服务,配置相对繁琐。

安装svn#

 yum -y install subversion

 

创建仓库DEV #

mkdir /opt/svn
svnadmin create /opt/svn/DEV

 

配置用户和权限#

1. 增加用户和密码#

   在/opt/svn/DEV/conf已经有passwd和authz配置文件了,但是如果将来需要建立多个版本库时就不方便了,建议建立统一的passwd和authz配置文件。

vim /opt/svn/passwd

[users]
svndmin = 123456
user1 = 123456
user2 = 123456

 

2.配置权限和用户分组#

vim  /opt/svn/authz
复制代码

[groups]                           #建立dev和admin两个分组   
dev  = uesr1,user2
admin = svnadmin

[/]                    
@dev = r
@admin = rw
* =                  #表示其它用户没有任何权限 [
/]                  #对单个用户授权 user1 = rw
* =
复制代码

 

 #

3.配置svnserve.conf#

vim /opt/svn/DEV/conf/svnserve.conf

[general]
anon-access = none
auth-access = write
password-db = /opt/svn/passwd
authz-db = /opt/svn/authz
realm = DEV

 

4.启动和关闭SVN服务#

killall svnserve
svnserve -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 svn
mod_authz_svn.so
mod_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.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /svn>
   DAV svn
   SVNParentPath /opt/svn/
   SVNListParentPath   on
   AuthType  Basic
   AuthName   "Authorization Realm"
   AuthUserFile   /opt/svn/svn_http_passwd
   AuthzSVNAccessFile  /opt/svn/authz
   Require   valid-user
</Location>
复制代码

 

4.重启httpd服务,并进行访问

service httpd restart

http://IP/svn/DEV

 

三、使用https方式访问#

 制作证书,得到证书和私钥

参考:

基于openssl的https服务配置

修改:

vim  /etc/httpd/conf.d/ssl.conf

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/httpd/ssl/httpd.crt
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

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
<Location /svn>
   DAV 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
</Location>
复制代码

重启httpd服务,就可以使用https的方法访问到SVN了

 

posted @   头痛不头痛  阅读(464)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示
主题色彩