Apache SVN服务器搭建是一个系统性的过程,涉及环境准备、安装配置、权限管理及安全优化等多个环节,以下是详细的搭建步骤和注意事项,帮助您完成SVN服务器的部署。

环境准备
在搭建SVN服务器前,需确保操作系统满足基本要求,以CentOS 7为例,建议配置至少2GB内存、20GB硬盘空间,并确保系统已更新至最新版本,关闭防火墙或配置相关策略,避免网络访问问题,使用systemctl stop firewalld和setenforce 0命令临时关闭防火墙和SELinux,生产环境中需谨慎配置。
安装必要软件包
SVN服务器依赖Apache HTTP服务器和SVN模块,需通过yum安装以下软件包:
yum install httpd mod_dav_svn subversion -y
安装完成后,检查服务状态并设置开机自启:
systemctl start httpd systemctl enable httpd systemctl status httpd
创建SVN仓库
选择合适目录(如/var/svn)作为仓库存储路径,执行以下命令创建仓库:

mkdir -p /var/svn svnadmin create /var/svn/myrepo
创建后,仓库目录会自动生成conf、db、hooks等子目录,其中conf下的svnserve.conf、passwd和authz是核心配置文件。
配置SVN与Apache集成
编辑Apache配置文件/etc/httpd/conf.d/subversion.conf,添加以下内容:
<Location /svn>
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn-auth-users
Require valid-user
</Location>
上述配置将SVN仓库挂载到Apache的/svn路径,并启用基本认证,通过htpasswd -cm /etc/svn-auth-users admin创建管理员账户,按提示设置密码。
配置权限管理
编辑仓库的authz文件(/var/svn/myrepo/conf/authz)实现精细化权限控制。

[groups] admin = admin dev = user1,user2 [/] @admin = rw * = r [myrepo:/project1] @dev = rw
该配置定义了管理员组和开发组,并为不同目录分配读写权限,修改后需重启Apache服务使配置生效。
启动服务与测试
执行systemctl restart httpd重启Apache服务,通过浏览器访问http://服务器IP/svn/myrepo,输入认证账户后若能显示仓库内容,则表示搭建成功,也可使用SVN客户端(如TortoiseSVN)执行svn co http://服务器IP/svn/myrepo进行测试。
安全优化建议
- 启用HTTPS:通过配置SSL证书加密传输数据,避免信息泄露。
- 定期备份:使用
svnadmin hotcopy命令备份仓库,防止数据丢失。 - 日志监控:配置Apache日志记录SVN操作,便于审计和排查问题。
- 限制访问IP:在Apache配置中添加
Require ip 192.168.1.0/24等策略,限制特定网段访问。
常见问题排查
若遇到访问问题,可检查以下事项:
- 确认Apache和SVN模块是否正常加载:
httpd -M | grep dav_svn。 - 验证仓库权限:确保
httpd用户对仓库目录有读写权限(chown -R apache.apache /var/svn)。 - 查看错误日志:
tail -f /var/log/httpd/error_log定位具体错误。
相关问答FAQs
Q1: 如何修改SVN仓库的默认访问端口?
A1: 编辑/etc/httpd/conf/httpd.conf文件,修改Listen指令的端口号(如Listen 8080),保存后重启Apache服务即可通过新端口访问SVN仓库,若需同时保留默认端口,可添加多个Listen指令。
Q2: SVN仓库如何迁移到新服务器?
A2: 迁移步骤如下:
- 在原服务器上执行
svnadmin hotcopy /var/svn/myrepo /tmp/myrepo_backup创建热备份数据。 - 将备份文件传输到新服务器(如使用
scp)。 - 在新服务器上恢复仓库:
mv /tmp/myrepo_backup /var/svn/myrepo。 - 重新配置Apache和权限文件,确保路径与原服务器一致。
- 重启Apache服务并验证访问。
