配置SVN服务器
环境与工具准备
配置SVN服务器前需先确定运行环境与必要组件,以下是常见配置要求:

- 操作系统:推荐使用Linux(如CentOS 7+/Ubuntu 20+),也可在Windows系统部署(需额外配置服务)。
- SVN版本:选择Subversion 1.13及以上版本(支持WebDAV协议、SQL用户存储等高级功能)。
- 必要组件:
- Apache(可选):若需通过Web方式访问SVN仓库,需安装Apache(版本2.4+)。
- MySQL/PostgreSQL(可选):若使用SQL存储用户认证信息,需提前安装数据库并配置连接。
- SSH(可选):若通过svnserve模式运行,需确保SSH服务已开启。
安装SVN服务器
不同系统的安装方式略有差异,以下是常见操作系统的安装命令:
| 系统类型 | 安装命令 |
|---|---|
| CentOS 7+ | yum install subversion |
| Ubuntu 20+ | apt install subversion |
| Debian 10+ | apt install subversion |
| Windows | 下载Subversion安装包,运行setup.exe,选择“SVN Server”组件,按向导完成安装。 |
Windows配置补充:安装完成后,需启动“SVN Service”服务(服务名为“Subversion Server”),并设置管理员密码。
初始化版本控制仓库
仓库是SVN版本控制的核心,需通过svnadmin工具创建。
创建仓库目录
在目标目录下创建SVN仓库文件夹(例如/var/svn/myrepo/):
mkdir -p /var/svn/myrepo/
执行初始化命令
使用svnadmin create命令创建仓库,并指定文件系统类型(推荐fsfs,兼容性更好):
svnadmin create /var/svn/myrepo/ --fs-type fsfs --config-dir /var/svn/myrepo/conf
关键参数说明:
--fs-type fsfs:指定文件系统类型(fsfs为默认推荐,支持大型仓库)。--config-dir /var/svn/myrepo/conf:指定仓库配置文件目录(后续权限配置需在此目录下)。
配置用户权限与访问控制
SVN支持多种访问模式(如svnserve、Apache WebDAV),以下以常见模式为例说明权限配置。
svnserve模式(命令行访问)
配置认证:编辑
/var/svn/myrepo/conf/svnserve.conf文件,设置认证方式:
[general] auth-access = write authz-db = /var/svn/myrepo/conf/authz password-db = /var/svn/myrepo/conf/passwd
创建用户:使用
svnadmin adduser命令添加用户(需root权限):svnadmin adduser alice svnadmin adduser bob
配置权限:编辑
/var/svn/myrepo/conf/authz文件(格式为“仓库路径:用户/组=权限”),[/] alice = r bob = rw
权限级别说明:
r:只读(readonly)rw:可读可写(readwrite)
Apache WebDAV模式(Web访问)
若通过Web方式访问SVN仓库,需配置Apache模块mod_dav_svn和认证模块mod_authz_svn。
安装模块:
yum install mod_dav_svn mod_authz_svn # CentOS apt install libapache2-mod-dav libapache2-mod-dav-svn # Ubuntu
配置Apache:编辑
/etc/httpd/conf.d/svn.conf(CentOS)或/etc/apache2/mods-enabled/dav_svn.conf(Ubuntu),添加仓库路径:<Location /svn/myrepo> DAV svn SVNPath "/var/svn/myrepo" AuthType Basic AuthName "SVN Repository" AuthUserFile "/var/svn/myrepo/conf/svnusers" Require valid-user </Location>创建用户与权限:
- 创建用户文件(如
/var/svn/myrepo/conf/svnusers,格式为“用户:密码”):htpasswd -c /var/svn/myrepo/conf/svnusers alice htpasswd /var/svn/myrepo/conf/svnusers bob
- 编辑权限文件(如
/var/svn/myrepo/conf/svnauthz),配置权限:[/] alice = r bob = rw
- 创建用户文件(如
测试与验证
完成配置后,需通过客户端测试SVN服务是否正常工作,以下是常用测试步骤:

客户端连接测试
命令行测试(Windows需安装TortoiseSVN客户端):
svn list https://your-svr/svn/myrepo/ # WebDAV模式 svn list svn://your-svr/var/svn/myrepo/ # svnserve模式
TortoiseSVN测试:右键“我的电脑”→“SVN Checkout”,输入仓库地址(如
https://your-svr/svn/myrepo),选择用户名密码(如alice/bob),点击“OK”。
创建测试项目
在客户端创建项目,添加文件并提交:
svn checkout https://your-svr/svn/myrepo/test-project cd test-project echo "Hello SVN" > test.txt svn add test.txt svn commit -m "Initial commit"
日志查看
提交后可通过svn log命令查看历史记录:
svn log https://your-svr/svn/myrepo/test-project
常见问题解答(FAQs)
如何解决SVN服务器无法访问?
- 检查端口:SVN默认端口为3690(svnserve)或8080(WebDAV),确保防火墙开放对应端口(如CentOS:
firewall-cmd --add-port=3690/tcp --permanent)。 - 服务状态:确认SVN服务已启动(如CentOS:
systemctl status httpd或systemctl status svnserve)。 - 权限配置:检查仓库路径权限(如
/var/svn/myrepo/需www-data用户可读可写)。
如何修改仓库中的项目权限?
- svnserve模式:编辑
/var/svn/myrepo/conf/authz文件,添加或修改用户权限(如将bob的权限从rw改为r)。 - Apache模式:编辑
/var/svn/myrepo/conf/svnauthz文件,更新权限配置(如bob = r)。 - 重启服务:修改后需重启SVN服务(如
systemctl restart httpd或systemctl restart svnserve)使配置生效。
通过以上步骤,可完成SVN服务器的配置,支持多用户协同开发与版本管理,配置过程中需注意权限隔离,避免未授权访问。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/215130.html


