通过Apache HTTP Server摆设SVN

[复制链接]
发表于 2025-10-15 00:06:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、安装Apache HTTP Server
  1. yum install -y httpd        # CentOS/RHEL
复制代码
2、安装Subversion及干系模块
  1. yum install -y subversion mod_dav_svn mod_authz_svn
复制代码

  • mod_dav_svn:Apache与SVN集成模块
  • mod_authz_svn:权限管理模块
3、创建版本库
  1. mkdir -p /var/svn/repos      # 创建存储目录
  2. svnadmin create /var/svn/repos --fs-type fsfs
  3. chown -R apache:apache /var/svn/repos  # 权限归属Apache用户
复制代码
4、设置用户认证文件
  1. htpasswd -c /etc/svn/passwd admin  # 创建用户admin并设置密码
复制代码
文件路径需与后续Apache设置匹配。
5、启用SVN模块
编辑Apache设置文件(路径因体系而异,如/etc/httpd/conf/httpd.conf ):
  1. LoadModule dav_svn_module modules/mod_dav_svn.so
  2. LoadModule authz_svn_module modules/mod_authz_svn.so
复制代码
6、添加SVN堆栈访问设置
在设置文件中追加以下内容:
  1. <Location /svn>
  2.   DAV svn
  3.   SVNPath /var/svn/repos       # 版本库路径
  4.   AuthType Basic
  5.   AuthName "SVN Repository"
  6.   AuthUserFile /etc/svn/passwd  # 用户认证文件
  7.   Require valid-user
  8.   AuthzSVNAccessFile /etc/svn/authz  # 权限控制文件
  9. </Location>
复制代码

  • /svn为访问路径,可通过欣赏器访问。
7、设置权限文件(/etc/svn/authz)
  1. [groups]
  2. dev = user1,user2
  3. admin = admin
  4. [/]
  5. @admin = rw
  6. @dev = r
  7. * =
复制代码

  • * =表现匿名用户无权限。
8、重启Apache服务
  1. systemctl restart httpd    # CentOS/RHEL
复制代码
9、防火墙与SELinux设置
  1. firewall-cmd --permanent --add-service=http --add-service=https
  2. firewall-cmd --reload
  3. setenforce 0  # 临时关闭SELinux(生产环境需调整策略)
复制代码
10、访问测试

  • 欣赏器访问:http://服务器IP/svn
  • SVN客户端使用:svn checkout http://服务器IP/svn
11、HTTPS加密
使用OpenSSL天生证书并设置Apache的SSL模块。
12、多版本库管理
用SVNParentPath更换SVNPath,指向版本库父目次:
  1. SVNParentPath /var/svn
复制代码
13、自动同步钩子
在版本库的hooks目次下设置post-commit脚本,实现提交后自动同步。
常见题目


  • 权限拒绝错误:确保/var/svn目次权限为apache:apache。
  • 模块未加载:查抄mod_dav_svn和mod_authz_svn是否启用。
  • 路径不匹配:Apache设置中的路径需与实际存储路径同等。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表