apache http server 是发布 svn 版本库最稳定通用的方案,通过 webdav 支持 http/https 访问、认证与权限控制,并可联动钩子脚本;需正确安装模块、设置路径权限、配置 location 块及 authz 文件,最后验证语法并重启服务。

Apache HTTP Server 是发布 SVN 版本库最稳定、最通用的 Web 服务方案。它通过 WebDAV 协议暴露 SVN 仓库,支持 HTTP/HTTPS 访问、用户认证、细粒度权限控制,还能与钩子脚本联动实现自动同步。关键不是“能不能做”,而是配置是否匹配、路径是否一致、权限是否到位。
安装与模块准备
先确保 Apache 和 Subversion 已安装,并加载必需模块:
- Linux(如 CentOS/RHEL):运行
yum install -y httpd subversion mod_dav_svn mod_authz_svn;Debian/Ubuntu 则用apt-get install apache2 libapache2-svn - Windows 用户需手动将
mod_dav_svn.so和mod_authz_svn.so(来自 SVN 安装目录bin/)复制到 Apache 的modules/目录下 - 编辑 Apache 主配置文件(
/etc/httpd/conf/httpd.conf或conf/httpd.conf),确认启用以下模块:LoadModule dav_module modules/mod_dav.so<br>LoadModule dav_fs_module modules/mod_dav_fs.so<br>LoadModule dav_svn_module modules/mod_dav_svn.so<br>LoadModule authz_svn_module modules/mod_authz_svn.so
创建并授权版本库
SVN 仓库必须由 Apache 进程可读写,否则访问会失败:
PHP中文网提供Apache 2.4.62 官方 tar.gz 源码包下载,通过源码编译安装,开发者能够灵活定制模块、优化性能并精准控制安装路径,满足多样化的业务需求。
- 执行
svnadmin create /var/svn/repos(Linux)或svnadmin create F:\svn\myrepo(Windows)创建仓库 - Linux 下运行
chown -R apache:apache /var/svn/repos(CentOS)或chown -R www-data:www-data /var/svn/repos(Ubuntu) - Windows 下右键仓库目录 → “属性” → “安全” → 添加
SYSTEM或Apache Service 用户并赋予完全控制权限
配置 Apache 虚拟路径与认证
在 Apache 配置中添加 <location></location> 块,定义访问入口和安全策略:
- 路径建议用
/svn或/svn/myproject,避免根路径冲突 -
SVNPath指向单个仓库;若需托管多个仓库,改用SVNParentPath /var/svn,并确保父目录下每个子目录都是合法仓库 - 认证文件用
htpasswd创建:htpasswd -c /etc/svn/passwd admin;后续加用户去掉-c参数 - 权限文件
/etc/svn/authz示例:[groups]<br>dev = user1,user2<br>[/]<br>@dev = r<br>admin = rw
启动服务与验证访问
完成配置后,务必逐项检查再重启服务:
- 运行
httpd -t(Linux)或httpd -t(Windows Apache bin 目录)验证配置语法 - 重启 Apache:
systemctl restart httpd(Linux)或httpd -k restart(Windows) - 防火墙放行 HTTP(80)或 HTTPS(443)端口;SELinux 若启用,需执行
setsebool -P httpd_can_network_connect 1 - 浏览器访问
http://your-server-ip/svn,应弹出认证框;SVN 客户端执行svn list http://your-server-ip/svn应返回目录列表
不复杂但容易忽略:模块顺序不能错、路径权限要对、authz 文件里空行和缩进会影响解析、HTTPS 需额外配置 SSL 证书。配完别急着写代码,先用 svn info 和 svn log 确认基础连通性。










