如何在VPS上搭建SVN服务器?
| 组件/配置项 |
说明 |
推荐设置 |
| 操作系统 |
VPS常用系统 |
CentOS 7⁄8, Ubuntu 20.04 |
| SVN软件包 |
版本控制核心软件 |
subversion |
| 版本库路径 |
存放版本库的目录 |
/var/svn/repos |
| 默认端口 |
SVN服务端口 |
3690 |
| 认证方式 |
用户认证机制 |
密码文件认证 |
| 权限控制 |
访问权限管理 |
authz文件配置 |
| 防火墙设置 |
端口开放要求 |
3690端口需开放 |
| 客户端工具 |
推荐客户端 |
TortoiseSVN |
| 配置文件名 |
功能 |
关键参数 |
| ———— |
—— |
———- |
| svnserve.conf |
服务主配置 |
anon-access, auth-access, password-db, authz-db |
| passwd |
用户密码管理 |
username=password格式 |
| authz |
权限配置 |
[/] username=rw格式 |
如何在VPS上搭建SVN服务器?从零开始的详细步骤与常见问题解决方案
SVN服务器搭建主要步骤
| 步骤 |
操作内容 |
关键工具/命令 |
| 1 |
安装SVN软件包 |
yum install subversion |
| 2 |
创建版本库目录 |
mkdir /var/svn/repos |
| 3 |
初始化版本库 |
svnadmin create /var/svn/repos |
| 4 |
配置用户密码 |
passwd文件编辑 |
| 5 |
设置访问权限 |
authz文件配置 |
| 6 |
修改服务配置 |
svnserve.conf文件设置 |
| 7 |
启动SVN服务 |
svnserve -d -r /var/svn/repos |
| 8 |
配置防火墙 |
firewall-cmd 或 iptables |
分步骤详细操作流程
步骤1:安装SVN软件包
操作说明: 使用包管理器安装Subversion软件
使用工具提示: SSH客户端连接VPS,使用root或sudo权限
# CentOS/RHEL系统
yum install subversion -y
Ubuntu/Debian系统
apt-get update
apt-get install subversion -y
步骤2:创建版本库目录
操作说明: 建立存放SVN版本库的目录结构
使用工具提示: 建议选择有足够磁盘空间的路径
# 创建版本库根目录
mkdir -p /var/svn/repos
验证目录创建
ls -ld /var/svn/repos
步骤3:初始化版本库
操作说明: 使用svnadmin命令创建新的版本库
使用工具提示: 确保目录权限设置正确
# 创建版本库
svnadmin create /var/svn/repos
查看版本库结构
ls -la /var/svn/repos/
步骤4:配置用户和权限
操作说明: 编辑三个关键配置文件:svnserve.conf、passwd、authz
使用工具提示: 配置文件位于版本库的conf目录下
# 进入配置目录
cd /var/svn/repos/conf
编辑密码文件
vi passwd
在passwd文件中添加用户:
[users]
admin = admin123
user1 = user123
developer = dev123
步骤5:启动SVN服务
操作说明: 启动SVN服务并设置开机自启
使用工具提示: 使用-d参数以守护进程方式运行,-r指定版本库根路径
# 启动SVN服务
svnserve -d -r /var/svn/repos
检查服务是否运行
ps aux | grep svnserve
netstat -tlnp | grep 3690
常见问题及解决方案
| 问题 |
原因 |
解决方案 |
| 客户端无法连接SVN服务器 |
防火墙未开放3690端口 |
firewall-cmd --add-port=3690/tcp --permanent 然后 firewall-cmd --reload |
| 权限配置后仍无法访问 |
authz文件格式错误或路径设置不当 |
确保在权限配置前添加[/],格式为username=rw |
| SVN日志显示离线或1970年日期 |
anon-access设置不当 |
修改svnserve.conf中的anon-access = none |
| 多版本库管理问题 |
启动参数配置不正确 |
使用svnserve -d -r /var/svn(指定父目录) |
| 服务启动失败 |
端口被占用或权限不足 |
停止现有服务killall svnserve后重新启动 |
| 外网无法访问SVN服务 |
路由器端口映射未配置 |
在路由器设置中将3690端口映射到VPS内网IP |
防火墙配置示例
# CentOS 7/8使用firewalld
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload
或者使用iptables
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
service iptables save
多版本库配置
如果需要管理多个项目,可以创建多个版本库:
# 创建项目1版本库
svnadmin create /var/svn/project1
创建项目2版本库
svnadmin create /var/svn/project2
启动服务时指定父目录
svnserve -d -r /var/svn
通过以上步骤,您可以在VPS上成功搭建SVN服务器,为团队提供稳定的版本控制服务。每个配置步骤都需要仔细检查,特别是权限和防火墙设置,这是确保服务可用的关键环节。
发表评论