1、安装Apache HTTP Server
yum install -y httpd # CentOS/RHEL
2、安装Subversion及相关模块
yum install -y subversion mod_dav_svn mod_authz_svn
3、创建版本库
mkdir -p /var/svn/repos # 创建存储目录
svnadmin create /var/svn/repos --fs-type fsfs
chown -R apache:apache /var/svn/repos # 权限归属Apache用户
4、配置用户认证文件
htpasswd -c /etc/svn/passwd admin # 创建用户admin并设置密码
文件路径需与后续Apache配置匹配。
5、启用SVN模块
编辑Apache配置文件(路径因系统而异,如/etc/httpd/conf/httpd.conf
):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
6、添加SVN仓库访问配置
在配置文件中追加以下内容:
<Location /svn>DAV svnSVNPath /var/svn/repos # 版本库路径AuthType BasicAuthName "SVN Repository"AuthUserFile /etc/svn/passwd # 用户认证文件Require valid-userAuthzSVNAccessFile /etc/svn/authz # 权限控制文件
</Location>
/svn
为访问路径,可通过浏览器访问。
7、配置权限文件(/etc/svn/authz)
[groups]
dev = user1,user2
admin = admin[/]
@admin = rw
@dev = r
* =
* =
表示匿名用户无权限。
8、重启Apache服务
systemctl restart httpd # CentOS/RHEL
9、防火墙与SELinux配置
firewall-cmd --permanent --add-service=http --add-service=https
firewall-cmd --reload
setenforce 0 # 临时关闭SELinux(生产环境需调整策略)
10、访问测试
11、HTTPS加密
使用OpenSSL生成证书并配置Apache的SSL模块。
12、多版本库管理
用SVNParentPath替代SVNPath,指向版本库父目录:
SVNParentPath /var/svn
13、自动同步钩子
在版本库的hooks目录下配置post-commit脚本,实现提交后自动同步。