通过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配置中的路径需与实际存储路径一致。
相关推荐
Fireworkitte2 天前
Apache POI 详解 - Java 操作 Excel/Word/PPT
java·apache·excel
蚂蚁数据AntData2 天前
从性能优化赛到社区Committer,走进赵宇捷在Apache Fory的成长之路
大数据·开源·apache·数据库架构
小湘西2 天前
Apache HttpClient 的请求模型和 I/O 类型
java·http·apache
超级小忍12 天前
Spring Boot 集成 Apache Kafka 实战指南
spring boot·kafka·apache
阳光开朗_大男孩儿12 天前
SVN上传代码
java·linux·服务器·svn
阳光开朗_大男孩儿12 天前
SVN 添加 .ignore
svn
天上掉下来个程小白14 天前
Apache ECharts-02.入门案例
前端·spring boot·apache·echarts·苍穹外卖
SelectDB技术团队15 天前
Apache Doris 3.0.6 版本正式发布
大数据·数据分析·apache·实时分析·极速分析
搬码临时工15 天前
svn客户端使用教程简易入门:附外网远程访问内网SVN服务通用方法
svn
guygg8816 天前
Linux中的阻塞信号与信号原理
linux·mysql·apache