当前位置: 首页 > news >正文

Centos 7 部署SVN服务器

一、安装SVN

  • 1、安装Subversion
sudo yum -y install subversion
  • 2、验证是否安装成功(查看svn版本号)
svnserve --version

二、创建版本库

  • 1、先建立目录,目录位置可修改
mkdir -p /var/svn
cd /var/svn
  • 2、创建版本库,添加权限
svnadmin create /var/svn/project
chmod -R o+rw /var/svn/project

在这里插入图片描述

三、修改SVN配置文件

  • 1、进入/var/svn/project/conf下找到 svnserve.conf 文件编辑
  • 2、找到以下配置项,将前面的 # 号去掉,然后做相应的配置
# 匿名访问权限配置
anon-access = none  ; 禁止匿名访问
# 授权访问权限配置
auth-access = write  ; 授权用户具有读写权限
# 用户密码文件配置
password-db = passwd ; 用户密码文件路径
# 权限配置文件配置
authz-db = authz  ; 权限文件路径
# 仓库标识配置
realm = /var/svn/project  ; 版本库路径

注意:以上配置项都需要顶格,即前面不能预留空格,否则报错

四、创建用户

  • 1、进入/var/svn/project/conf下找到 passwd 文件编辑
    在这里插入图片描述

五、设置权限

  • 1、进入/var/svn/project/conf下找到 authz 文件编辑
    在这里插入图片描述

六、放行端口

# firewalld放行方法,其他方法自行百度
# ①向防火墙配置文件中添加规则,允许 TCP 协议的流量通过 3690 端口
firewall-cmd --zone=public --permanent --add-port=3690/tcp
# ②重新加载防火墙配置,使更改生效
firewall-cmd --reload
# ③验证端口是否已成功放行
firewall-cmd --zone=public --list-ports

七、运行SVN,并连接

  • 1、启动svn服务
# 如启动失败,请重启服务器,再执行该命令
svnserve -d -r /var/svn
  • 2、Windows客户端连接SVN
    在这里插入图片描述
    在这里插入图片描述

八、设置开机自启

  • 1、脚本添加到systemd服务管理器中(需要先关闭SVN服务,重启服务器即可)
# ①创建一个新的服务单元文件
sudo vi /etc/systemd/system/svnserve.service# ②在该文件中,插入以下内容:
--------------[Unit]
Description=SVN Server
After=network.target[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve 
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -d -r /var/svn[Install]
WantedBy=multi-user.target--------------
# ③保存并关闭文件,重新加载systemd配置
sudo systemctl daemon-reload# ④启用服务以在开机时自动运行
sudo systemctl enable svnserve.service# ⑤启动服务,使其立即生效
sudo systemctl start svnserve.service# 停止服务
sudo systemctl stop svnserve.service
# 查看服务状态
sudo systemctl status svnserve.service
  • 2、关闭SELINUX(不关闭会导致读取format文件夹报错)
# 永久关闭selinux:
vi /etc/selinux/config
关闭:SELINUX=disabled# 永久开启selinux:
vi /etc/selinux/config
开启:SELINUX=enforcing# 查看状态命令:
getenforce

修改后,重启服务器

http://www.lryc.cn/news/177671.html

相关文章:

  • SEO方案尝试--Nuxtjs项目基础配置
  • 【算法分析与设计】动态规划(上)
  • Java多线程篇(6)——AQS之ReentrantLock
  • 【计算机网络】IP协议第二讲(Mac帧、IP地址、碰撞检测、ARP协议介绍)
  • TouchGFX界面开发 | 按钮控件应用示例
  • BSVD论文理解:Real-time Streaming Video Denoising with Bidirectional Buffers
  • 共同见证丨酷雷曼武汉运营中心成立2周年
  • 一种单键开关机电路图
  • 设计模式2、抽象工厂模式 Abstract Factory
  • C++ 32盏灯,利用进制和 与 或 进行设计
  • Ffmpeg-(1)-安装:ubuntu系统安装Ffmpeg应用
  • 系统集成|第十一章(笔记)
  • 二叉树题目:二叉树剪枝
  • JAVA中使用CompletableFuture进行异步编程
  • uniapp:配置动态接口域名,根据图片访问速度,选择最快的接口
  • Lambda表达式常见用法(提高效率神器)
  • 2023旷视自驾感知算法暑期实习一面
  • Python3 如何实现 websocket 服务?
  • SQLAlchemy常用数据类型
  • Vue路由与nodejs下载安装及环境变量的配置
  • HarmonyOS之 应用程序页面UIAbility
  • 数据集笔记: Porto
  • 修改vscode底部栏背景和字体颜色
  • 加速企业AI实施:成功策略和效率方法
  • 【图论C++】树的重心——教父POJ 3107(链式前向星的使用)
  • hhh百度地铁广告太搞笑了;24家国内大模型公司面经;LLM法律应用实践;AI+教育产品图谱与工作流 | ShowMeAI日报
  • 项目管理:项目经理一定要避开这四大误区
  • 爬虫为什么需要 HTTP 代理 IP?
  • leetcode刷题笔记/代码随想录笔记——移除字符串中多余空格
  • dataGrip导出导入的方式