云服务器搭建SVN服务器完整指南
环境准备与方案选择
选择CentOS 7或Ubuntu 20.04等主流Linux系统,建议配置1核2G及以上云服务器实例。通过SSH工具连接服务器后,执行系统更新命令:
# CentOS
yum update -y
# Ubuntu
apt update && apt upgrade -y
Subversion安装与配置
软件包安装
# CentOS
yum install -y subversion
# Ubuntu
apt install -y subversion
创建版本库
mkdir /var/svn
svnadmin create /var/svn/myproject
chmod -R 777 /var/svn/myproject
权限配置文件修改
vim /var/svn/myproject/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
访问控制与用户管理
# 编辑用户密码文件
vim /var/svn/myproject/conf/passwd
[users]
user1 = 123456
user2 = abcdef
# 配置目录权限
vim /var/svn/myproject/conf/authz
[/]
user1 = rw
user2 = r
服务启动与防火墙设置
# 启动SVN服务
svnserve -d -r /var/svn --listen-port 3690
# 防火墙配置(CentOS)
firewall-cmd --permanent --add-port=3690/tcp
firewall-cmd --reload
客户端连接验证
Windows使用TortoiseSVN客户端,输入服务地址:
svn://服务器IP:3690/myproject
Linux客户端执行测试命令:
svn checkout svn://服务器IP:3690/myproject
运维管理与优化建议
- 配置systemd服务实现开机自启
- 设置日志轮转策略
- 定期执行svnadmin hotcopy备份
- 启用SSH隧道加密传输
常见问题解决方案
客户端无法连接服务器
检查云服务器安全组的入站规则,确认3690端口已开放。验证服务进程是否正常运行:
ps aux | grep svnserve
netstat -tunlp | grep 3690
提交时提示权限不足
检查authz文件中的权限分配,确保相应用户对目标目录有写入权限。注意配置文件中不能包含中文注释。
仓库数据迁移方法
svnadmin dump /var/svn/myproject > myproject.dump
svnadmin create new_repo
svnadmin load new_repo