在Linux系统中创建SVN服务器主要依赖于Apache和Subversion软件包,通过配置HTTP协议实现版本控制功能,以下是详细步骤:

确保系统已更新软件包列表并安装必要组件,在CentOS/RHEL系统中使用yum install subversion mod_dav_svn -y命令,而在Debian/Ubuntu系统中则使用apt-get install subversion libapache2-svn -y,安装完成后,创建SVN仓库目录,例如mkdir -p /var/svn/repos,然后使用svnadmin create /var/svn/repos/project1命令初始化新仓库,此时会在指定路径生成conf、db、hooks等子目录。
接下来配置仓库访问权限,编辑/var/svn/repos/project1/conf/svnserve.conf文件,确保以下配置项未被注释:[general]部分设置anon-access = none禁止匿名访问,auth-access = write允许认证用户读写,并启用password-db = passwd指定密码文件,随后编辑passwd文件添加用户,格式如user1 = password123,每个用户占一行,为增强安全性,建议修改仓库所有者:chown -R apache:apache /var/svn/repos(CentOS)或chown -R www-data:www-data /var/svn/repos(Ubuntu)。
对于Apache集成方式,需编辑SVN配置文件,在CentOS中创建/etc/httpd/conf.d/svn.conf,在Ubuntu中则编辑/etc/apache2/mods-enabled/dav_svn.conf,添加如下内容:
<Location /svn> DAV svn SVNPath /var/svn/repos/project1 AuthType Basic AuthName "SVN Repository" AuthUserFile /etc/svn-auth-file Require valid-user </Location>
使用htpasswd -cm /etc/svn-auth-file user1创建初始用户密码,-c参数表示创建新文件,重启Apache服务使配置生效:systemctl restart httpd(CentOS)或systemctl restart apache2(Ubuntu)。

验证SVN服务器时,可通过浏览器访问http://服务器IP/svn,输入用户名密码应显示仓库内容,也可使用svn checkout http://服务器IP/svn/project1命令测试检出功能,若需创建多个仓库,可重复上述初始化步骤,或在Apache配置中使用SVNParentPath替代SVNPath指向仓库父目录。
常见问题排查包括:权限错误时检查chown设置;认证失败时确认passwd文件路径正确;防火墙需开放80(HTTP)或3690(SVN协议)端口,建议定期备份/var/svn/repos目录,可通过tar -czf svn-backup.tar.gz /var/svn/repos命令实现。
相关问答FAQs:
-
如何修改SVN仓库的访问权限?
答:编辑仓库目录下的conf/svnserve.conf文件,调整anon-access和auth-access参数值(如设为read或none),并修改passwd文件中的用户密码,修改后需重启Apache服务使配置生效。
(图片来源网络,侵删) -
SVN服务器如何支持HTTPS加密访问?
答:需生成SSL证书并配置Apache的SSL模块,在/etc/httpd/conf.d/svn.conf中添加SSLEngine on、SSLCertificateFile等指令,将Location段的协议改为https,并确保防火墙开放443端口,最后重启Apache启用HTTPS配置。
