🗣 Wd提问: linux下svn服务器搭建
🤖 Ai回答: 在 Linux 系统下搭建 SVN(Subversion)服务器是一个常见的任务,适用于团队协作开发。下面将详细介绍如何在 Linux(以 CentOS/Ubuntu 为例)上搭建一个基于 Apache + SVN 的 SVN 服务器。
🧱 一、环境准备
常见 Linux 发行版
CentOS / RHEL / Rocky Linux
Ubuntu / Debian
我们以 CentOS 7 和 Ubuntu 20.04 为例进行说明。
🔧 二、安装 SVN 和 Apache
✅ 方法一:使用 Apache + SVN(推荐)
1、安装所需软件包
对于 CentOS/RHEL:
bash
sudo yum install -y subversion httpd mod_dav_svn
对于 Ubuntu/Debian:
bash
sudo apt update
sudo apt install -y subversion apache2 libapache2-svn
⚠️ 注意:`mod_dav_svn` 是 Apache 模块,用于支持 SVN 协议。
2、启动并设置开机自启 Apache
CentOS:
bash
sudo systemctl start httpd
sudo systemctl enable httpd
Ubuntu:
bash
sudo systemctl start apache2
sudo systemctl enable apache2
📁 三、创建 SVN 仓库
选择一个目录作为 SVN 仓库的存放位置,例如 `/var/svn/repos`。
bash
sudo mkdir -p /var/svn/repos
cd /var/svn/repos
创建一个名为 `myproject` 的仓库:
bash
sudo svnadmin create myproject
这会在 `myproject` 目录下生成配置文件和数据结构。
🛠 四、配置 Apache 支持 SVN
1、编辑 Apache 配置文件
编辑主配置文件或创建虚拟主机配置。
CentOS:
bash
sudo vi /etc/httpd/conf/httpd.conf
Ubuntu:
bash
sudo vi /etc/apache2/apache2.conf
或者在 Ubuntu 中创建独立配置文件:
bash
sudo vi /etc/apache2/sites-available/svn.conf
2、添加 SVN 配置
在配置文件中添加如下内容:
apache
<Location /svn
DAV svn
SVNPath /var/svn/repos/myproject
认证方式(可选)
AuthType Basic
AuthName SVN Repository
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location
🔹 `SVNPath` 指向你的 SVN 仓库路径。
🔹 `AuthUserFile` 指定用户密码文件路径。
🔐 五、创建用户认证文件
使用 `htpasswd` 工具创建用户。
bash
sudo htpasswd -c /etc/subversion/passwd username
第一次运行时加 `-c` 创建文件,后续添加用户去掉 `-c`。
例如:
bash
sudo htpasswd -c /etc/subversion/passwd alice
sudo htpasswd /etc/subversion/passwd bob
用户名密码会以加密形式保存。
🔍 六、设置权限和目录权限
确保 Apache 能读取仓库目录:
bash
sudo chown -R root:apache /var/svn/repos
sudo chmod -R 755 /var/svn/repos
或者根据你的系统用户组调整为 `www-data`(Ubuntu)或 `apache`(CentOS)。
🔄 七、重启 Apache 并测试
bash
CentOS
sudo systemctl restart httpd
Ubuntu
sudo systemctl restart apache2
💡 八、访问 SVN 仓库
现在你可以通过浏览器或 SVN 客户端访问仓库。
使用命令行测试:
bash
svn co http://your-server-ip/svn/myproject
如果提示输入用户名密码,输入你之前创建的用户即可。
🔒 九、可选:启用 HTTPS 加密(安全建议)
如果你希望使用 HTTPS,需要配置 SSL 证书。
示例:使用 Let's Encrypt 自动化配置
bash
sudo apt install certbot python3-certbot-apache
sudo certbot apache -d svn.yourdomain.com
然后修改 Apache 配置使用 `https://`。
🧩 十、高级配置(可选)
1、多个仓库支持(使用 SVNParentPath)
apache
<Location /svn
DAV svn
SVNParentPath /var/svn/repos
AuthType Basic
AuthName SVN Repository
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location
这样可以访问多个仓库,如:
http://server/svn/project1
http://server/svn/project2
2、设置不同用户的权限(使用 `authz` 文件)
创建 `/etc/subversion/authz` 文件:
ini
[groups]
developers = alice, bob
admins = admin
[/]
@developers = rw
@admin = rw
* = r
然后在 Apache 配置中加入:
apache
SVNAuthzAuthorProvider authz
SVNAuthzAuthzProvider authz
并指定 `AuthzDB` 文件路径。
✅ 总结:快速检查清单
| 步骤 | 是否完成 |
| 安装 SVN 和 Apache | ✅ |
| 创建仓库 | ✅ |
| 配置 Apache 支持 SVN | ✅ |
| 设置用户认证 | ✅ |
| 设置权限 | ✅ |
| 重启 Apache | ✅ |
| 测试访问 | ✅ |
📚 参考资料
[Subversion 官方文档](https://subversion.apache.org/)
[Apache mod_dav_svn 文档](https://httpd.apache.org/docs/2.4/mod/mod_dav_svn.html)
如果你有特殊需求(比如只用 `svnserve` 方式),也可以告诉我,我可以提供基于 `svnserve` 的搭建方案。
📣 商家广告:





0
IP地址: 207.139.76.217
搜索次数: 0
提问时间: 2025-11-11 16:12:42
🛒 域名购买:
souhuai.com.cn
8.hi.cn
53.cx
chesou.com.cn
afuncard.com
bc0.cn
3331.top
83.gs
ftp.gs
sbnjt.com.cn
❓️ 热门提问:
云计算终端设备
天行vn安卓
ip联名什么意思
哪个平台云服务器最便宜
li 域名注册
6000左右电脑主机
云主机轻量
香港菜鸟仓库
SEO工具对比
设计网站托管
豌豆Ai站群搜索引擎系统
🌐 域名评估:
368.net.cn
rr.sc.cn
05.gold
tt.xj.cn
ii.qh.cn
uj.gs
rj.gg
vhbg.cn
vqxj.cn
juhj.cn
⛏ 最新挖掘:
凯里酸汤鱼
贵阳烤脑花
都匀毛尖茶
花溪牛肉粉
贵阳烤生蚝
贵阳烤豆腐
贵阳纸包鱼
贵阳特色菜
🖌 热门作画:
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊:
🔗 友情链接:
广州花都月饼厂
北京品牌推广
ai提问
🧰 站长工具:
Ai工具 whois查询 搜索
📢 温馨提示:本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持:本站由豌豆Ai提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。