云计算百科
云计算领域专业知识百科平台

CentOS 7 搭建 SVN 服务器(精简版教程)

本文聚焦 CentOS 7 系统,详细讲解 SVN 服务器的安装、配置、启动及权限管理,步骤更贴合 CentOS 7 特性,确保操作可落地。

一、环境准备(CentOS 7 专属)

1. 权限与基础环境

确保以 root 用户操作,先更新系统并关闭 / 放行防火墙(生产环境推荐放行端口):

# 更新 yum 源(可选,提升安装速度)
yum update -y

# 关闭防火墙(临时)
systemctl stop firewalld
# 禁止防火墙开机自启(永久)
systemctl disable firewalld

# 关闭 SELinux(临时)
setenforce 0
# 永久关闭 SELinux(需重启生效)
sed -i 's

2. 开放 SVN 端口(替代关闭防火墙,推荐)

若不关闭防火墙,需放行默认端口 3690:

# 临时开放 3690 端口
firewall-cmd –add-port=3690/tcp
# 永久开放 3690 端口
firewall-cmd –add-port=3690/tcp –permanent
# 重载防火墙规则
firewall-cmd –reload/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

二、安装 SVN 服务

CentOS 7 直接通过 yum 安装 subversion 包,命令如下:

# 安装 SVN 服务端
yum install subversion -y

# 验证安装是否成功
svnserve –version

输出包含 svnserve, version 字样即为安装成功。

三、创建 SVN 仓库

1. 创建仓库根目录(统一管理)

# 创建根目录
mkdir -p /var/svn/repos
# 设置目录权限(避免后续访问报错)
chmod -R 755 /var/svn/repos

2. 创建具体项目仓库(示例:project 仓库)

# 创建仓库
svnadmin create /var/svn/repos/project

# 查看仓库目录结构(验证创建)
ls /var/svn/repos/project

输出 conf db format hooks locks README.txt 即为创建成功,其中 conf 是核心配置目录。

四、核心配置(关键步骤)

CentOS 7 下 SVN 配置文件路径为 /var/svn/repos/project/conf/,包含 3 个核心文件,需严格按格式修改(注释行需删除 # 和空格,配置项顶格)。

1. 配置 svnserve.conf(全局配置)

vim /var/svn/repos/project/conf/svnserve.conf

修改内容如下(删除所有注释符 # 及空格,确保顶格): [general]
# 禁止匿名访问
anon-access = none
# 认证用户可写
auth-access = write
# 密码文件路径
password-db = passwd
# 权限控制文件路径
authz-db = authz
# 仓库标识(自定义,如项目名)
realm = project_repos

2. 配置 passwd(用户密码)

vim /var/svn/repos/project/conf/passwd

[users]
# 示例:添加管理员和普通用户
admin = Admin@123
user1 = User1@123

3. 配置 authz(权限控制)

vim /var/svn/repos/project/conf/authz

支持分组和路径级权限控制,示例配置:

# 定义用户组
[groups]
admin_group = admin
user_group = user1

# 仓库根目录权限
[/]
@admin_group = rw  # 管理员组读写
@dev_group = r    # 普通用户只读
* =                # 其他用户禁止访问

# 子目录权限(示例:project 的 doc 目录)
[project:/doc]
user1 = rw  # 普通用户可读写 doc 目录
admin = rw  # 管理员可读写

五、启动 SVN 服务(CentOS 7 专属)

1. 启动服务

# 后台启动 SVN,指定仓库根目录(关键)
svnserve -d -r /var/svn/repos

# 验证服务是否启动
# 查看进程
ps -ef | grep svnserve
# 查看端口监听
netstat -tnlp | grep 3690

输出包含 svnserve -d -r /var/svn/repos 和 3690 端口监听即为启动成功。

2. 停止 / 重启服务

# 停止服务
pkill svnserve

# 重启服务
pkill svnserve && svnserve -d -r /var/svn/repos

六、设置开机自启(CentOS 7 systemd)

1. 创建系统服务文件

vim /usr/lib/systemd/system/svnserve.service

添加以下内容(适配 CentOS 7 systemd):

[Unit]
Description=SVN Server Daemon
After=network.target

[Service]
Type=forking
# 启动命令(指定仓库根目录)
ExecStart=/usr/bin/svnserve -d -r /var/svn/repos
# 停止命令
ExecStop=/usr/bin/pkill svnserve
# 故障自动重启
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

2. 生效并设置开机自启

# 重新加载 systemd 配置
systemctl daemon-reload

# 设置开机自启
systemctl enable svnserve

# 启动服务
systemctl start svnserve

# 查看服务状态
systemctl status svnserve

输出 active (running) 即为开机自启配置成功。

七、客户端访问测试

1. 访问地址格式

svn://你的服务器IP/仓库名
# 示例:svn://192.168.1.100/project

2. Linux 客户端测试

# 检出仓库(输入用户名密码)
svn checkout svn://192.168.1.100/project /local/project –username admin

# 提交测试文件
cd /local/project
echo "CentOS 7 SVN Test" > test.txt
svn add test.txt
svn commit -m "add test file"

3. Windows 客户端(TortoiseSVN)

  • 右键空白处 → 选择「SVN Checkout」

  • 输入 svn://服务器IP/project,点击「OK」

  • 输入配置的用户名(如 admin)和密码,即可检出仓库。

八、CentOS 7 常见问题排查

1. 服务启动失败

  • 检查仓库路径权限:chown -R root:root /var/svn/repos

  • 检查 svnserve.conf 格式:配置项必须顶格,无多余空格

  • 检查端口是否被占用:netstat -tnlp | grep 3690,占用则换端口(如 svnserve -d -r /var/svn/repos –listen-port 3691)

2.权限不足报错

  • 检查 authz 文件:路径和用户权限是否匹配(如 [project:/] 而非 [/])

  • 检查 SELinux:若未永久关闭,临时关闭 setenforce 0 重试

3. 开机自启不生效

  • 检查服务文件路径:CentOS 7 服务文件需放在 /usr/lib/systemd/system/

  • 重新执行 systemctl daemon-reload && systemctl enable svnserve

总结

CentOS 7 搭建 SVN 核心是:安装包 → 建仓库 → 配权限 → 启服务 → 设自启。重点注意配置文件格式(顶格、无空格)、防火墙 / SELinux 放行,以及权限文件的路径匹配,即可快速搭建稳定的 SVN 服务器。

赞(0)
未经允许不得转载:网硕互联帮助中心 » CentOS 7 搭建 SVN 服务器(精简版教程)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!