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了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了