🗣 Wd提问: linux svn服务器搭建
🤖 Ai回答: 在 Linux 系统上搭建 SVN(Subversion)服务器,通常需要以下几个步骤:
✅ 一、安装 SVN 服务端
1、安装 Subversion 服务端
不同发行版的包管理器不同:
🐧 Ubuntu / Debian:
bash
sudo apt update
sudo apt install subversion
🍏 CentOS / RHEL / Fedora:
bash
CentOS/RHEL 7/8
sudo yum install subversion
或者使用 dnf(CentOS 8+ / Fedora)
sudo dnf install subversion
✅ 二、创建 SVN 仓库目录
bash
sudo mkdir -p /var/svn/repos
sudo chown -R www-data:www-data /var/svn/repos 如果用 Apache
或者用 svn 用户(推荐)
sudo adduser svn
sudo chown -R svn:svn /var/svn/repos
创建一个示例仓库(如 `myproject`):
bash
cd /var/svn/repos
sudo svnadmin create myproject
仓库目录结构:
/var/svn/repos/myproject/
├── db/
├── hooks/
├── locks/
├── format
├── README.txt
└── etc/
✅ 三、配置仓库权限(可选)
编辑仓库的 `conf/authz` 和 `conf/passwd` 文件:
bash
cd /var/svn/repos/myproject/conf
1、编辑 `passwd` 文件(用户密码)
ini
[users]
添加用户和密码(明文存储,仅用于测试)
john = johnpass
alice = alipass
生产环境建议使用更安全的方式(如 LDAP、数据库或外部认证)。
2、编辑 `authz` 文件(权限控制)
ini
[groups]
developers = john, alice
[repos:/myproject]
@developers = rw
* = r
`r` = read,`w` = write,`*` 表示所有人
✅ 四、配置 SVN 服务(Apache 或 svnserve)
方案一:使用 Apache + mod_dav_svn(推荐生产环境)
1、安装 Apache 及模块
bash
sudo apt install apache2 libapache2-mod-dav-svn
2、配置 Apache
编辑 `/etc/apache2/sites-available/default-svn.conf` 或新建:
apache
<Location /svn
DAV svn
SVNParentPath /var/svn/repos
AuthType Basic
AuthName Subversion Repository
AuthUserFile /etc/apache2/dav_svn/passwd
Require valid-user
</Location
注意:`SVNParentPath` 指向所有仓库目录,每个子目录是一个独立仓库。
3、创建用户文件(如果没生成)
bash
sudo htpasswd -cm /etc/apache2/dav_svn/passwd john
sudo htpasswd -m /etc/apache2/dav_svn/passwd alice
4、启用模块并重启 Apache
bash
sudo a2enmod dav_svn
sudo a2ensite default-svn
sudo a2enmod rewrite
sudo a2enmod auth_basic
sudo systemctl restart apache2
方案二:使用 svnserve(轻量级,适合小团队)
1、编辑仓库访问权限(conf/access文件)
bash
cd /var/svn/repos/myproject/conf
sudo vi access
内容如下:
ini
[groups]
developers = john, alice
[/]
@developers = rw
* = r
2、修改 `svnserve.conf`(启用权限和密码)
ini
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My Project Repository
3、创建用户密码文件(passwd)
bash
sudo cp passwd.example passwd
sudo vi passwd
添加:
john = johnpass
alice = alipass
4、启动 svnserve
bash
sudo svnserve -d -r /var/svn/repos listen-port=3690
默认端口是 3690,也可以修改。
5、设置开机自启(可选)
bash
sudo nano /etc/systemd/system/svnserve.service
内容:
ini
[Unit]
Description=Subversion Daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /var/svn/repos listen-port=3690
User=svn
Group=svn
Restart=always
[Install]
WantedBy=multi-user.target
bash
sudo systemctl enable svnserve
sudo systemctl start svnserve
✅ 五、测试访问
使用命令行客户端测试:
bash
测试连接(svnserve 方式)
svn checkout http://localhost:3690/myproject
测试 Apache 方式(需浏览器或 curl)
svn checkout http://your-server-ip/svn/myproject
如果提示“401 Unauthorized”,请检查用户名密码是否正确。
✅ 六、防火墙设置(如需)
bash
开放端口 3690(svnserve)
sudo ufw allow 3690/tcp
或开放 Apache 的默认端口 80/443
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
✅ 七、安全建议
不要使用明文密码(生产环境建议用 SSH key、LDAP、Active Directory)
使用 HTTPS 加密传输(Apache + SSL)
定期备份仓库(`svnadmin hotcopy`)
设置日志记录(Apache 日志或 svn 日志)
✅ 八、常见问题
❓ 无法连接 SVN 服务器?
检查服务是否运行:`ps aux | grep svnserve` 或 `systemctl status svnserve`
检查端口是否开放:`netstat -tlnp | grep :3690`
检查防火墙规则
检查路径权限(`chown -R svn:svn /var/svn/repos`)
✅ 九、参考资源
[官方文档](https://subversion.apache.org/)
[Apache mod_dav_svn 文档](https://httpd.apache.org/docs/current/mod/mod_dav_svn.html)
[SVN 命令大全](https://www.svnbook.com/en/1.10/cmd.html)
✅ 总结
| 项目 | 推荐方案 |
|
| 小团队/个人 | svnserve |
| 生产环境/多用户 | Apache + mod_dav_svn |
| 安全性 | HTTPS + 认证机制 |
如需进一步扩展功能(如自动备份、Web UI、LDAP集成),可以继续提问!
📌 祝你搭建顺利!
📣 商家广告:





0
IP地址: 36.175.3.0
搜索次数: 0
提问时间: 2025-11-11 15:51:20
🛒 域名购买:
al3.net
yf.gs
vj.gs
qz.gs
cgbc.cn
z.gz.cn
g-y.cn
373.net.cn
4.bj.cn
lw.gs
❓️ 热门提问:
vi设计公司网站
大华校时服务器
云主机什么好
游戏 云服务器
深圳去香港玩需要什么手续
开网店的网站
虚拟空间使用教程
云深加速器
idc哪个好
联通idc报价
豌豆Ai站群搜索引擎系统
🌐 域名评估:
b.hl.cn
sun.ah.cn
zfxm.cn
gy0.cn
oppo.hn.cn
3qk.cn
65.gg
wk.gs
aaaa.tj.cn
byd.sd.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
常用软件
广州风淋室
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。