• 阅读帮助
    命令提示符
    [root@server-002 ~]# 表示当前服务root用户执行的命令
    [svn@server-002 ~]$ 表示普通用户svn执行的命令
    [root@localhost ~]# 表示其它服务器的root用户

系统配置

CPU: 2核
内存: 8G
硬盘: 1T
服务器OS: CentOS7
服务器IP: 192.168.1.2


服务简介

SVN 版本库 server


服务管理

管理用户 命令 说明
svn sudo systemctl start httpd 启动服务
svn sudo systemctl stop httpd 停止服务
root systemctl start httpd 启动服务
root systemctl stop httpd 启动服务

服务安装和配置

安装SVN服务

  1. 创建svn用户

    [root@server-002 ~]# useradd svn
    [root@server-002 ~]# passwd svn

  2. 查看是否已经安装svn
    [root@server-002 ~]# rpm -qa subversion
  3. 如果没有,直接第4步,如果有,先卸载
    [root@server-002 ~]# rpm remove subversion -y
  4. 创建svn.repo文件
    [root@server-002 ~]# vi /etc/yum.repos.d/svn.repo
[SVN]
name=SVN Repo
baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/
enabled=1
gpgcheck=0
  • 1
  • 2
  • 3
  • 4
  • 5
  1. 执行yum安装svn

    [root@server-002 ~]# yum install subversion -y

  2. 防火墙打开svn默认的3690端口
    [root@server-002 ~]# firewall-cmd –zone=public –add-port=3690/tcp –permanent
    [root@server-002 ~]# firewall-cmd –reload

迁移SVN数据

  1. ssh到原SVN服务器备份旧SVN数据仓库

    [root@localhost ~]# svnadmin dump /var/www/svn/latRepo > /svndump/latRepo.dump

  2. 将备份copy到新的SVN服务器
    [root@localhost ~]# scp /svndump/*.dump svn@192.168.1.2:~/dump
  3. 回到新的SVN服务器,登陆svn用户,创建版本库
    [svn@server-002 ~]$ svnadmin create latRepo
  4. 恢复版本库
    [svn@server-002 ~]$ svnadmin load latRepo < dump/latRepo.dump
  5. 创建日志目录/home/svn/logs
    [svn@server-002 ~]$ mkdir logs
  6. 创建配置目录/home/svn/conf
    [svn@server-002 ~]$ mkdir conf
  7. 创建配置文件/home/svn/conf/svnserve.conf(示例)
    [svn@server-002 ~]$ vim conf/svnserve.conf
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  1. 创建用户文件/home/svn/conf/passwd(示例)

    [svn@server-002 ~]$ vim conf/passwd.conf

[users]
hezhigang=hezhigang
shenfu=shenfu
yangshuaifei=yangshuaifei
  • 1
  • 2
  • 3
  • 4
  1. 创建认证文件/home/svn/conf/authz(示例)

    [svn@server-002 ~]$ vim conf/authz

[groups]
lse = hezhigang, shenfu, yangshuaifei [/]
spancer = rw [latRepo:/]
@lse = rw
* =
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

配置服务管理脚本

  1. 启动脚本start.sh

    [svn@server-002 ~]$ vim start.sh

#!/bin/bash
svnserve -d -r /home/svn --config-file=/home/svn/conf/svnserve.conf --log-file=/home/svn/logs/svn.log
  • 1
  • 2
  1. 停止脚本stop.sh

    [svn@server-002 ~]$ vim start.sh

#!/bin/bash
PID=$(ps -ef | grep svnserve | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

配置开机启动

  1. 创建svn.service文件

    [root@server-002 ~]# vim /etc/systemd/system/svn.service

[Unit]
Description=svn service
After=syslog.target [Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /home/svn --config-file=/home/svn/conf/svnserve.conf --log-file=/home/svn/logs/svn.log
User=svn
Group=svn [Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  1. 激活开机启动svn服务

    [root@server-002 ~]# systemctl daemon-reload
    [root@server-002 ~]# systemctl enable svn

添加http访问支持

  1. 检查是否已经安装了apache服务

    [root@server-002 ~]# rpm -qa httpd

  2. 如果没有该服务,则安装,否则跳过
    [root@server-002 ~]# yum install httpd -y
  3. 安装mod_dav_svn组件
    [root@server-002 ~]# yum install mod_dav_svn -y
  4. 修改apache启动用户和组为svn
    [root@server-002 ~]# vim /etc/httpd/conf/httpd.conf
User svn
Group svn
  • 1
  • 2
  1. 修改subversion.conf配置

    [root@server-002 ~]# vim /etc/httpd/conf.d/subversion.conf

<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn # 如果想在一个目录下面创建多个版本库的话,则使用SVNParentPath,否则SVNPath。
AuthType Basic
AuthName "svn Repo"
AuthUserFile /home/svn/conf/httpdpasswd
AuthzSVNAccessFile /home/svn/conf/authz
Require valid-user
</Location>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  1. 切换svn用户,创建密码文件并添加用户

    [svn@server-002 ~]$ htpasswd -c -m /home/svn/conf/httpdpasswd admin

后续添加用户只需执行htpasswd /home/svn/conf/httpdpasswd <username>

  1. 开放80端口

    [root@server-002 ~]# firewall-cmd –add-port=80/tcp –permanent
    [root@server-002 ~]# firewall-cmd –reload

  2. 启动apache

    [root@server-002 ~]# systemctl start httpd
    [root@server-002 ~]# systemctl enable httpd

添加apache支持后,如果不需要通过svn://192.168.1.2的形式访问,可以不用启动svn,直接启动httpd服务即可。如果二者都要支持,则httpd.service和svn.service都启动,但二者使用的密码文件不相同

centos7+apache+svn配置 踩坑,注意权限问题。apache应用目录checkout应用 必须用这个命令:svn co file:///home/svn/test/ test ,通过svn add * &&commit 及任意修改都是不行的的更多相关文章

  1. CentOS7.4安装MySQL踩坑记录

    CentOS7.4安装MySQL踩坑记录 time: 2018.3.19 CentOS7.4安装MySQL时网上的文档虽然多但是不靠谱的也多, 可能因为版本与时间的问题, 所以记录下自己踩坑的过程, ...

  2. 记一次 Spring 事务配置踩坑记

    记一次 Spring 事务配置踩坑记 问题描述:(SpringBoot + MyBatisPlus) 业务逻辑伪代码如下.理论上,插入数据 t1 后,xxService.getXxx() 方法的查询条 ...

  3. mybatis-generator:generate 生成代码配置踩坑详解

    mybatis-generator:generate 生成代码配置踩坑不少,在此留下笔记以便后续填坑 一.mysql返回时间问题 错误信息: [ERROR] Failed to execute goa ...

  4. svn配置多仓库与权限控制

    telnet: connect to address 47.106.115.228: Connection refused svn执行上下文错误由于目标计算机积极拒绝无法连接 标签: svn 2017 ...

  5. SVN配置以及自己主动部署到apache虚拟文件夹

    SVN配置以及自己主动部署到apache虚拟文件夹 一.VisualSVN server 服务端和TortoiseSVNclient下载 VisualSVN下载:http://subversion.a ...

  6. Kafka SASL ACL配置踩坑总结

    源起:工程现阶段中间件采用的是kafka.满足了大数据的高吞吐,项目间的解耦合,也增强了工程的容错率与扩展性.但是在安全这一块还有漏洞,kafka集群中,只要网站内的任何人知道kafka集群的ip与t ...

  7. Windows+Apache+Python+Django 踩坑记录

    摘要 使用Python进行Web项目开发:相对于主流三大Web端解决方案(Java/.NET/PHP) Python在某些方面具有一定的优势,相对 Java/.NET 有更轻量级的部署方案,相对PHP ...

  8. XXLJOB2.1.0数据源配置踩坑记录

    最近在看XXLJOB,因为截至到发文时间最新的版本是2.1.0而且需要建立的数据库与Quartz解耦了,所以就用了最新的版本. 首先说一下踩坑过程: 代码开发完成之后,在定时跑的时候第一次跑的多数失败 ...

  9. 在mac版virtual box中安装ubuntu虚拟机的NAT/Host-Only网络配置踩坑记录

    之前用惯了vmware和parallels desktop,网络配置十分智能,基本不用自己配置.由于版权原因,工作电脑上换了免费的virtual box用,四五年都完全在虚拟机里干活的本菜鸡居然在虚拟 ...

随机推荐

  1. mongodb千万级写入怎么优化

    从mysql数据库通过java程序导入单表1300w到mongodb,花了大概50分钟,前1000w条数据中每100w条大概要3分钟,之后的300多w条就差不多每100w条要5到6分钟,之后再从其他的 ...

  2. controller层,service层,dao层(main函数,子函数,子的子函数)

    controller层相当于main函数————————————————————————————————————————————————————@RequestMapping("/query ...

  3. 几个OOD概念

    Composition vs. Aggregation Composition和Aggregation都是”包含”的关系 (part of, made up of) ,不同的是生命周期.对于Compo ...

  4. 无线模块 RXB12-315m TXB12-315M 应用

    近期有个产品用到这对模块,因为没有什么技术支持,就直接上机调试.測试结果为带障碍发射距离60米. 下面是应用的几个知识点: 1:编程操作.事实上比較简单,调制信号315M是模块自带的,不须要调制和解调 ...

  5. Jenkins发布后自动通知【钉钉】

    阅读目录 一.前言 二.使用钉钉推送的优势 三.配置 一.前言 最近使用Jenkins进行自动化部署,但是发布署后,并没有相应的通知,虽然有邮件发送通知,但是发现邮件会受限于大家接受的设置,导致不能及 ...

  6. Java面向对象 第1节 类和对象

    一.Java 对象和类 面向对象语言三大特性:封装.继承.多态: 对象:描述客观事物的一个实体: 类:类是封装对象的属性和方法的载体,反过来说具有相同属性和行为的一类实体被称为类:类行为:方法:属性: ...

  7. 不同eclipse版本的git库使用

    在eclipse 4.4.2 -win32版本下编译好后上传版本: 1.在eclipse 4.4.0 -win64 版本下,编译报 缺少 sevlet.http...库,解决方法  project - ...

  8. MOSSE(DSST)类和KCF类中滤波器推导结果不一致的解释

    首先要说明,DSST//BMVC2014类的CF是从MOSSE//CVPR2010模型得到的,是从信号的角度考虑问题,该类CF直接认为信号和滤波器之间存在相关的关系 而KCF//TPAMI2015类C ...

  9. Linux VMware安装VMTools工具

    安装VMTools工具 2)先启动CentOS并成功登录如下图,发现底部提示且窗口中等大小,准备安装 3)选择虚拟机菜单栏--安装VMware tools 4)光驱自动挂载VMTools 5)右键解压 ...

  10. MySQL触发器详解

    MySQL触发器 触发器是特殊的存储过程.不同的是,触发器不需要手动调用.只要当预定义的事件发生时,会被MySQL自动调用.主要用于满足复杂业务的规则和需求. 一.创建触发器 1.创建只有一个执行语句 ...