🗣 Wd提问: svn linux服务器搭建
🤖 Ai回答: 在 Linux 服务器上搭建 SVN(Subversion)服务器,通常包括以下几个步骤:
✅ 一、安装 Subversion 服务端
大多数 Linux 发行版都提供了 SVN 的包管理器安装方式。
Ubuntu / Debian 系统:
bash
sudo apt update
sudo apt install subversion apache2 libapache2-mod-svn
注意:`libapache2-mod-svn` 是用于通过 Apache 提供 Web 访问的模块。如果你只想用 `svnserve`(轻量级纯命令行访问),可以不安装此模块。
CentOS / RHEL / Rocky Linux / AlmaLinux:
bash
sudo yum install subversion mod_dav_svn
或使用 dnf(较新版本)
sudo dnf install subversion mod_dav_svn
✅ 二、创建 SVN 仓库目录
推荐将仓库放在 `/var/svn/` 目录下:
bash
sudo mkdir -p /var/svn
sudo chown -R www-data:www-data /var/svn 如果你用 Apache,需匹配用户组
或者更通用的方式(适合普通用户):
sudo mkdir -p /var/svn/repositories
sudo chown -R $USER:$USER /var/svn/repositories
✅ 三、创建第一个 SVN 仓库
bash
sudo svnadmin create /var/svn/repositories/myproject
这会在 `/var/svn/repositories/myproject` 下创建一个标准的 SVN 仓库结构。
✅ 四、配置仓库权限(可选)
编辑仓库的 `conf/authz` 文件(默认是空的,需要手动配置):
bash
sudo nano /var/svn/repositories/myproject/conf/authz
示例内容(设置用户组和权限):
ini
[groups]
developers = alice, bob
admins = charlie
[/]
* = r
[myproject:/]
@developers = rw
@admins = rw
`* = r`:所有用户只读。
`@developers = rw`:开发者组有读写权限。
`@admins = rw`:管理员组有读写权限。
注意:路径前的 `/` 表示根目录;`[myproject:/]` 表示这个仓库下的根目录。
✅ 五、配置访问控制(可选)—— 使用 svnserve 方式
如果不想用 Apache,可以使用 `svnserve` 命令直接启动服务(推荐本地或内网使用):
1、编辑仓库配置文件:
bash
sudo nano /var/svn/repositories/myproject/conf/svnserve.conf
取消注释并修改以下内容:
ini
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
2、创建用户密码文件:
bash
sudo nano /var/svn/repositories/myproject/conf/passwd
添加用户和密码(明文):
ini
[users]
alice = password123
bob = password456
charlie = adminpass
✅ 六、启动 SVN 服务(svnserve 模式)
bash
启动 svnserve(后台运行)
svnserve -d -r /var/svn/repositories listen-port 3690
或者指定配置文件(可选)
svnserve -d -r /var/svn/repositories config-file=/var/svn/repositories/myproject/conf/svnserve.conf
📌 开机自启建议:
创建 systemd 服务文件(例如 `/etc/systemd/system/svnserve.service`):
ini
[Unit]
Description=Subversion Repository Server
After=network.target
[Service]
Type=forking
User=www-data
Group=www-data
ExecStart=/usr/bin/svnserve -d -r /var/svn/repositories listen-port 3690
ExecStop=/bin/kill -TERM $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
然后启用并启动:
bash
sudo systemctl daemon-reload
sudo systemctl enable svnserve
sudo systemctl start svnserve
✅ 七、通过 Apache 提供 Web 访问(可选)
如果你希望从浏览器访问 SVN(如 `http://your-server/svn/myproject`),则需要配置 Apache。
1、启用模块:
bash
sudo a2enmod dav
sudo a2enmod dav_svn
sudo systemctl restart apache2
2、创建 Apache 配置文件(如 `/etc/apache2/sites-available/svn.conf`):
apache
<Location /svn
DAV svn
SVNParentPath /var/svn/repositories
AuthType Basic
AuthName Subversion Repository
AuthUserFile /var/svn/repositories/.htpasswd
Require valid-user
</Location
注意:`AuthUserFile` 可以用 `htpasswd` 创建:
bash
sudo htpasswd -c /var/svn/repositories/.htpasswd alice
sudo htpasswd /var/svn/repositories/.htpasswd bob
3、启用站点并重启 Apache:
bash
sudo a2ensite svn.conf
sudo systemctl restart apache2
现在可以通过浏览器访问:
👉 `http://your-server/svn/myproject`
✅ 八、客户端连接测试
在客户端机器上,使用 `svn` 命令连接:
bash
使用 svnserve(本地或 SSH)
svn checkout svn://your-server/myproject
使用 Apache(WebDAV)
svn checkout http://your-server/svn/myproject
使用 HTTPS(推荐生产环境)
svn checkout https://your-server/svn/myproject
✅ 九、防火墙配置(重要!)
确保防火墙允许访问:
bash
Ubuntu/Debian (ufw)
sudo ufw allow 3690/tcp svnserve
sudo ufw allow 80/tcp HTTP
sudo ufw allow 443/tcp HTTPS
CentOS/RHEL (firewalld)
sudo firewall-cmd permanent add-port=3690/tcp
sudo firewall-cmd permanent add-service=http
sudo firewall-cmd permanent add-service=https
sudo firewall-cmd reload
✅ 十、备份与维护
定期备份仓库:
bash
备份整个仓库目录
tar -czf svn_backup_$(date +%Y%m%d).tar.gz /var/svn/repositories/
或使用 svnadmin dump 进行增量备份
svnadmin dump /var/svn/repositories/myproject myproject.dump
恢复时:
bash
svnadmin load /var/svn/repositories/newproject < myproject.dump
📌 推荐实践建议
生产环境建议使用 HTTPS + Apache + 用户认证。
内网开发可使用 `svnserve` + 密码认证。
所有操作建议使用非 root 用户进行管理。
定期检查日志:`/var/log/apache2/access.log` 或 `systemctl status svnserve`
🎉 完成!
你现在已经在 Linux 服务器上成功搭建了一个功能完整的 SVN 服务器,支持多用户、权限控制、Web 访问和命令行访问。
如有需要,我还可以帮你配置自动备份、邮件通知、Web UI(如 ViewVC)等进阶功能!
是否需要我为你生成一键脚本或配置模板?欢迎继续提问 😊
📣 商家广告:





0
IP地址: 162.17.113.6
搜索次数: 0
提问时间: 2025-11-11 15:47:00
🛒 域名购买:
797.net.cn
tui.men
389.net.cn
663.net.cn
3330.com.cn
32.gs
31.gs
62.chat
zhansou.cn
83.gs
❓️ 热门提问:
从哪里过香港最近
阿里学生云服务器
space lite虚拟空间
山西云主机
模块化机房施工方案
oalib论文搜索引擎
云翼加速器
自己搭建gpu服务器
cn 域名购买
网页开发状态管理
豌豆Ai站群搜索引擎系统
🌐 域名评估:
deepseek.vin
gaix.cn
khgp.cn
umib.cn
ltkj.net
xphone.media
nsvu.cn
erlp.cn
jj.sn.cn
dd.tw.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
域名抢注工具
网站搜尋器
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。