• 阅读帮助
    命令提示符
    [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. struts2(三)拦截器

    拦截器 需求 如果要访问某一个action类中的某一个方法的内容,如果是admin用户,则访问,如果不是admin用户,则不能访问. 实现 缺点  权限判断的代码和业务逻辑代码混合在一起了 利用拦截器 ...

  2. centos配置apache的https服务

    因为公司要开发微信小程序,由于小程序比较特殊,需要https服务,所以就研究了下apache的https服务了,大致过程如下: 1.向证书机构申请https证书,会得到证书和私钥 2.安装apache ...

  3. VS版本号定义、规则和相关的Visual Studio插件

    软件版本号主要标识了软件的版本,通过其可以了解软件.类库文件的当前版本,使得软件版本控制有所依据. 我们就Windows系统和.NET Framework的编号规则来看,软件版本号的定义结构一般是这样 ...

  4. windows删除文件或目录CMD命令

    rd/s/q 盘符:\某个文件夹  (强制删除文件文件夹和文件夹内所有文件)del/f/s/q 盘符:\文件名  (强制删除文件,文件名必须加文件后缀名)

  5. babel-loader和webpack UglifyJS一起使用时console的问题

    一起使用babel-loader和webpack UglifyJS时,babel会优先处理一遍代码,编译后的代码才进入webpack进行打包和优化操作. 出处:https://www.tangshua ...

  6. SmartGit过期解决办法

    1. 快捷键win+R ,输入:%APPDATA%\syntevo\SmartGit\2. 进入smart的版本 如18.1 然后删除setting.xml文件

  7. NET设计模式 第二部分 结构性模式(8):桥接模式(Bridge Pattern)

    桥接模式(Bridge Pattern) ——.NET设计模式系列之九 Terrylee,2006年2月 概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维 ...

  8. Sublime Text3安装以及初次配置

    Sublime Text3安装以及初次配置 工具:官网下载:Sublime Text3 安装:直接运行安装.http://write.blog.csdn.net/postedit 激活:参考文/晚晴幽 ...

  9. JS获取坐标

    1.js获取对象的绝对坐标 方法1: function getAbsPoint(e) { var x = e.offsetLeft, y = e.offsetTop; while(e=e.offset ...

  10. JavaScript 基本数据类型和引用类型的区别详解

    js基本数据类型: js基本数据类型包括:undefined,null,number,boolean,string.基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值 1. 基本数据类 ...