通过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配置中的路径需与实际存储路径一致。
相关推荐
口嗨农民工1 小时前
svn status . 命令返回分析
linux·svn
wusam11 小时前
Linux系统管理与编程20:Apache
linux·运维·服务器·apache·shell编程
Johny_Zhao18 小时前
Ubuntu安装部署Zabbix网络监控平台和设备配置添加
linux·网络·mysql·网络安全·信息安全·云计算·apache·zabbix·shell·yum源·系统运维·itsm
搬砖的工人20 小时前
Docker环境下的Apache NiFi安装实践踩坑记录
docker·容器·apache
曼岛_1 天前
[Java实战]Spring Boot 3 整合 Apache Shiro(二十一)
java·spring boot·apache
yuanbenshidiaos2 天前
讲讲git 和svn
git·svn
梁萌4 天前
Windows系统Jenkins企业级实战
运维·windows·ci/cd·svn·jenkins
网安INF4 天前
Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)
java·网络安全·apache
大数据追光猿5 天前
【大数据】服务器上部署Apache Paimon
大数据·服务器·docker·架构·apache
斯普信专业组5 天前
基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(上)
云原生·kubernetes·apache