🗣 Wd提问: 本地svn服务器搭建
🤖 Ai回答: 在本地搭建 SVN(Subversion)服务器是一个非常实用的需求,尤其适用于小型团队或个人进行版本控制。以下是详细的 Windows 和 Linux(Ubuntu/CentOS) 本地 SVN 服务器搭建步骤。
✅ 一、SVN 服务器简介
SVN 是一个集中式版本控制系统,由一个中央服务器存储所有版本历史,客户端通过 `svn checkout`、`commit` 等命令与服务器交互。
搭建方式有三种:
1、svnserve(推荐用于本地/内网)——轻量、简单
2、Apache + mod_dav_svn —— 支持 HTTP/HTTPS,适合公网或复杂权限
3、文件协议(file://) —— 仅限本地访问,不推荐多人协作
本教程推荐使用 svnserve,适合本地开发、内网使用。
✅ 二、Windows 系统搭建 SVN 服务器
1、下载并安装 SVN
官网下载:https://subversion.apache.org/packages.html
推荐使用:TortoiseSVN(含命令行工具)或 SlikSVN
推荐下载 SlikSVN(纯命令行版):
🔗 https://sliksvn.com/en/download/
安装后,确保 `svn` 和 `svnserve` 命令在系统 PATH 中(命令行输入 `svn version` 验证)。
2、创建版本库(Repository)
打开 命令提示符(CMD) 或 PowerShell,执行:
bash
mkdir D:\svn-repos
svnadmin create D:\svn-repos\myproject
这会在 `D:\svn-repos\myproject` 目录下创建一个空的 SVN 仓库。
3、配置用户和权限
进入仓库配置目录:
bash
cd D:\svn-repos\myproject\conf
编辑三个文件:
✅ `svnserve.conf`
ini
[general]
anon-access = none 禁止匿名访问
auth-access = write 认证用户可写
password-db = passwd 指定密码文件
authz-db = authz 指定权限文件
realm = My SVN Repository 认证域(可自定义)
⚠️ 删除前面的 `` 和空格,确保配置生效!
✅ `passwd`(添加用户)
ini
[users]
admin = 123456
user1 = abc123
user2 = def456
✅ `authz`(设置目录权限,可选)
ini
[groups]
admin_group = admin
dev_group = user1, user2
[/]
@admin_group = rw
* = r
[myproject:/trunk]
@dev_group = rw
* =
说明:`/` 表示根目录,`myproject:/trunk` 表示仓库内 trunk 目录
4、启动 svnserve 服务
bash
svnserve -d -r D:\svn-repos listen-port 3690
`-d`:后台守护进程模式
`-r`:指定根目录(这样访问时路径为 `svn://ip/myproject`)
`listen-port`:端口(默认 3690)
✅ 测试:在另一台机器或本机打开命令行:
bash
svn info svn://127.0.0.1/myproject
应该提示输入用户名密码。
5、设置开机自启(可选)
创建批处理文件 `start_svn.bat`:
bat
@echo off
cd /d D:\svn-repos
svnserve -d -r D:\svn-repos listen-port 3690
然后通过“任务计划程序”设置开机启动该批处理。
✅ 三、Linux 系统搭建 SVN 服务器(Ubuntu/CentOS)
1、安装 SVN
Ubuntu/Debian:
bash
sudo apt update
sudo apt install subversion svnserve
CentOS/RHEL/Fedora:
bash
CentOS 7/8
sudo yum install subversion
CentOS 9 / Fedora
sudo dnf install subversion
验证安装:
bash
svnserve version
2、创建版本库
bash
sudo mkdir -p /var/svn
sudo svnadmin create /var/svn/myproject
3、配置用户和权限
bash
cd /var/svn/myproject/conf
编辑 `svnserve.conf`:
ini
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My Linux SVN Server
编辑 `passwd`:
ini
[users]
admin = password123
developer = devpass
编辑 `authz`(可选):
ini
[groups]
admin = admin
dev = developer
[/]
@admin = rw
* = r
[myproject:/trunk]
@dev = rw
* =
4、启动 svnserve
bash
sudo svnserve -d -r /var/svn listen-port 3690
`-r /var/svn` 表示仓库根目录,访问地址为 `svn://ip/myproject`
5、设置开机自启(systemd)
创建服务文件:
bash
sudo nano /etc/systemd/system/svnserve.service
内容如下:
ini
[Unit]
Description=Subversion Server
After=network.target
[Service]
Type=forking
User=svn
Group=svn
ExecStart=/usr/bin/svnserve -d -r /var/svn listen-port 3690
Restart=always
[Install]
WantedBy=multi-user.target
⚠️ 如果没有 `svn` 用户,先创建:
bash
sudo adduser system group no-create-home svn
sudo chown -R svn:svn /var/svn
启用并启动服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable svnserve
sudo systemctl start svnserve
sudo systemctl status svnserve
6、防火墙开放端口(如需远程访问)
bash
Ubuntu
sudo ufw allow 3690
CentOS
sudo firewall-cmd permanent add-port=3690/tcp
sudo firewall-cmd reload
✅ 四、客户端连接测试
在任意机器上(Windows/Linux/Mac):
bash
svn checkout svn://<服务器IP/myproject
输入用户名和密码即可。
示例:
bash
svn checkout svn://192.168.1.100/myproject
推荐客户端工具:
| 平台 | 推荐工具 |
| Windows | TortoiseSVN(右键集成) |
| macOS | Cornerstone、SmartSVN |
| Linux | RabbitVCS、Command Line |
| IDE | IntelliJ IDEA / Eclipse / VS Code(需插件) |
✅ 五、常见问题与技巧
| 问题 | 解决方案 |
| `svn: E170001: Authorization failed` | 检查 `svnserve.conf` 是否取消了 `` 注释,权限是否正确 |
| `svnserve: Can't bind server socket` | 端口被占用,换端口(如 3691)或杀掉进程 `killall svnserve` |
| 无法远程访问 | 检查防火墙、服务器是否监听 `0.0.0.0`(默认就是) |
| 想用 HTTP 访问? | 使用 Apache + mod_dav_svn(更复杂,适合公网) |
| 备份仓库 | 直接复制整个 `myproject` 文件夹即可(热备份) |
✅ 六、安全建议
不要使用 `anon-access = read`(公开可读)
密码不要用弱密码
定期备份 `/var/svn` 或 `D:\svn-repos`
尽量不要用 `file://` 协议多人访问(易损坏)
✅ 七、进阶:使用 Apache + mod_dav_svn(可选)
如果你希望支持 Web 浏览、HTTPS、LDAP 认证,可配置 Apache:
1、安装 Apache 和模块:
bash
sudo apt install apache2 libapache2-mod-dav-svn
2、编辑配置:
bash
sudo nano /etc/apache2/mods-available/dav_svn.conf
3、添加:
apache
<Location /svn
DAV svn
SVNParentPath /var/svn
AuthType Basic
AuthName SVN Repository
AuthUserFile /etc/subversion
📣 商家广告:





0
IP地址: 156.132.196.72
搜索次数: 0
提问时间: 2025-11-08 04:06:25
🛒 域名购买:
yw.gs
m.tj.cn
67.plus
tc.gs
f.cq.cn
wosou.com.cn
wc.chat
85.chat
chang.net.cn
touwang.com.cn
❓️ 热门提问:
服务器的集群
linux搭建ftp服务器
哥伦比亚vps
cn2云服务器
云手机免费版挂机
如何注册好域名
奇瑞香港上市
机柜品牌排行榜前十名
机柜玻璃
idc公司江西
豌豆Ai站群搜索引擎系统
🌐 域名评估:
5a.jl.cn
jj.qh.cn
rt.chat
xa.xz.cn
pamv.cn
deepseek.shopping
bqjn.cn
h.qh.cn
pp.xj.cn
byd.ln.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
贵阳净化车间
검색엔진
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。