通过Apache HTTP Server部署SVN

1、安装Apache HTTP Server

复制代码
yum install -y httpd        # CentOS/RHEL

2、安装Subversion及相关模块

复制代码
yum install -y subversion mod_dav_svn mod_authz_svn
  • mod_dav_svn:Apache与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 svn
  SVNPath /var/svn/repos       # 版本库路径
  AuthType Basic
  AuthName "SVN Repository"
  AuthUserFile /etc/svn/passwd  # 用户认证文件
  Require valid-user
  AuthzSVNAccessFile /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脚本,实现提交后自动同步。

常见问题

  • 权限拒绝错误 :确保/var/svn目录权限为apache:apache
  • 模块未加载 :检查mod_dav_svnmod_authz_svn是否启用。
  • 路径不匹配:Apache配置中的路径需与实际存储路径一致。
相关推荐
脑电信号要分类12 小时前
将多张图片拼接成一个pdf文件输出
pdf·c#·apache
不是书本的小明15 小时前
Apache vs Nginx vs Tomcat 核心区别与优化
nginx·tomcat·apache
Suchadar2 天前
源码编译Apache
apache
一字白首3 天前
小程序组件化进阶:从复用到通信的完整指南DAY04
前端·小程序·apache
shughui3 天前
SVN 下载+安装+汉化+使用全教程(附安装包详细图文)
svn
猿小路4 天前
SVN安装及IDEA集成详细使用教程
java·svn·intellij-idea
专注_每天进步一点点4 天前
mysql-connector-j(8.0 及以上版本,包括你使用的 8.3.0)并非采用 GPL 许可证,因此你在项目中引入该依赖时,不需要遵循 GPL 的开源要求(比如开源你的整个项目)
数据库·mysql·apache
不爱学英文的码字机器4 天前
Apache RocketMQ+cpolar 让消息服务全网可达
apache·rocketmq
鸽芷咕4 天前
海量时序数据选型指南:从大数据架构演进看 Apache IoTDB 的崛起
大数据·数据库·架构·apache
D愿你归来仍是少年5 天前
Apache Spark 第 3 章:核心概念 RDD / DataFrame
大数据·spark·apache