操作系统: CentOS 7.6 64位

第一步:通过yum命令安装svnserve,命令如下:

检测svn是否安装:

  1. rpm -qa subversion #检查现有版本,如果输入命令后没有提示的话,表明没有安装
  2. yum remove subversion #如果有安装,可以通过该命令卸载旧版本的svn服务
  3. yum -y install subversion #执行安装 此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行

若需查看svn安装位置,可以用以下命令:

  1. rpm -ql subversion

第二步:创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

选择在home路径下创建版本库,当前处于根目录下,一次性创建如下:

  1. mkdir /home/svn #以后新的svn仓库都在这个目录下创建

第三步:创建svn版本库

  1. svnadmin create /home/svn/phpkaoshi #在/home/svn下创建一个phpkaoshi版本库,执行命令后可以查看到该目录

(phpkaoshi为你预期的版本库名称,可自定义)

创建成功后,进入phpkaoshi目录下

  1. cd /home/svn/phpkaoshi/

进入目录,可以看见如下文件信息:

  1. drwxr-xr-x 2 root root 4096 May 2 13:48 conf
  2. drwxr-sr-x 6 root root 4096 May 2 13:48 db
  3. -r--r--r-- 1 root root 2 May 2 13:48 format
  4. drwxr-xr-x 2 root root 4096 May 2 13:48 hooks
  5. drwxr-xr-x 2 root root 4096 May 2 13:48 locks
  6. -rw-r--r-- 1 root root 229 May 2 13:48 README.txt

第四步:配置修改

进入已经创建好的版本库目录下,也就是前文说创建的phpkaoshi,进入conf

  1. cd /home/svn/phpkaoshi/conf/

conf目录下,一共存放三份重要的配置文件,如下:

  1. -rw-r--r-- 1 root root 1080 May 2 13:48 authz
  2. -rw-r--r-- 1 root root 309 May 2 13:48 passwd
  3. -rw-r--r-- 1 root root 3090 May 2 13:48 svnserve.conf

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

1.编辑 authz 文件(注意:[/]也是必须的)

[/]:表示根目录,即 /home/svn

jackie = rw:表示用户jackie对根目录具有读写权限。

2.编辑 passwd 文件

如上所示,用户名为:jackie,认证密码为:123456

3.编辑 svnserve.conf 文件(注意:配置的前面不能有空格,一定要顶格写)

anon-access = read:表示禁止可读。(也可设置 anon-access = none:表示禁止匿名用户访问。建議将anon-access=read 改为anon-access=none。否則svn查看日志显示连接服务器失败)

auth-access = write:表示授权用户拥有读写权限。

password-db = passswd:指定用户名口令文件,即 passwd 文件。

authz-db = authz:指定权限配置文件,即 authz 文件。

realm = /home/svn:指定认证域,即 /home/svn 目录。

第五步:防火墙开启(iptable防火墻)

多数情况下服务器安装完成,配置完成后,无法连接svn服务器,均是防火墙问题【注意:如果是阿里云,腾讯云的服务器,还需在安全组添加端口开启规则,本人在此踩过坑】

centos6配置防火墙方法如下

注意以下防火墙配置方法只适合CentOs6

  1. vi /etc/sysconfig/iptables

添加配置信息

  1. -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT

保存退出

  1. systemctl restart iptables.service #重启防火墙使配置生效

centos7配置防火墙方法如下

使用centos7会发现,用centos6以前的方式查看、打开和关闭防火墙都无效了。这是因为centos7的防火墙改用firewalld,而不再使用iptables

查看centos7的防火墙的状态,查看的命令为

sudo systemctl status firewalld

关闭防火墙,命令为:

sudo systemctl stop firewalld

打开防火墙的命令为:

sudo systemctl start firewalld

添加端口,或查詢端口是否開放

添加端口【3690】

  1. firewall-cmd --permanent --add-port=3690/tcp

查詢端口【3690】

  1. firewall-cmd --permanent --query-port=3690/tcp

六:启动svn服务器

  1. ps -aux|grep svnserve #查找该服务是否正在运行,如果运行的话先杀掉该服务
  2. kill -9 ID
  3. svnserve -d -r /home/svn #启动svn服务 指定/home/svn目录启动svn服务

注意:

  1. 启动服务时指定的目录很重要,该目录为根目录,相对于配置文件中指定的路径来说。
  2. 每次修改配置文件,前面三个文件的任意一个,都需要重新启动svn服务。

启动成功后,可用ps -aux查看服务启动是否成功

  1. ps -ef | grep 'svnserve'

导入你的项目到svn仓库中:

格式:svn import 你本地的项目文件夹路径  file:///home/svn/svn项目文件夹名字 -m “版本说明”

举例:

  1. [root@jackie conf]# svn import /www/wwwroot/phpkaoshi/ file:///home/svn/phpkaoshi/phpkaoshi -m '导入第一个'

如上,首先 /www/wwwroot/phpkaoshi 文件夹必须存在,是你本地的文件夹路径,即你想导入的项目路径,其次 phpkaoshi(最后一个) 是你svn版本库中的项目名,到时候你检出项目的时候svn地址后面跟的就是这个名字。 -m '导入第一个' 为该导入项目的注释。

七:客户端访问svn服务器

在windows客户端,输入地址:svn://ip地址:3690/xxxx   (iP地址为你linux的ip,xxxx为前文创建的版本库名称,3690为svn默认端口)

弹出输入用户名和密码,输入即可访问

或者在linux服务器输入命令测试:

  1. svn co svn://39.98.x.x/phpkaoshi/phpkaoshi #中间跟的是你的服务器ip,后面是跟的版本库名和检出项目名

如下为例子:

遇到的问题小结:

问题1:执行svn命令:svn co svn://ip地址:3690/xxxx报错如下

这是因为修改svnserve.conf时,打开注释时,配置的前面有空格,应该顶格写。修改后即可

问题2:输入账号密码后,提示 svn: Authorization failed解决办法

把authz 文件 [/] 改为 [\] 试试

svn服务器搭好后,后续快速新建项目方法,下面以新建try项目为例子

1.创建svn版本库

  1. svnadmin create /home/svn/try //try为新建项目版本库

2.进入新建版本库配置文件夹conf,修改配置文件

  1. cd /home/svn/try/conf/

编辑 authz 文件,配置账号权限

编辑 passwd 文件,新增账号、密码

编辑 svnserve.conf 文件(建議将anon-access=read 改为anon-access=none。否則svn查看日志显示连接服务器失败)

3.启动svn服务器

  1. ps -aux|grep svnserve #查找该服务是否正在运行,如果运行的话先杀掉该服务
  2. kill -9 ID
  3. svnserve -d -r /home/svn #启动svn服务 指定/home/svn目录启动svn服务

导入你的项目代码到svn仓库中

  1. svn import /www/wwwroot/try/ file:///home/svn/try/try -m '导入第一个'
  2.  
  3. 注意: /www/wwwroot/try 是服务器项目的文件夹路径,即你想导入的项目路径,其次 try(最后一个) 是你svn版本库中的项目名,到时候你检出项目的时候svn地址后面跟的就是这个名字,不然导出来的文件没有项目名,是一堆散乱的文件,所以要多写一个try(本人在此踩过坑)。 -m '导入第一个' 为该导入项目的注释。

测试

[root@jackie conf]# svn co svn://39.98.81.13/try/try

然后就可以通过svn客户端检出项目代码了

参考:https://www.cnblogs.com/-mrl/p/8980244.html

   https://blog.csdn.net/wz947324/article/details/80168080

Linux(Centos7)下搭建SVN服务器的更多相关文章

  1. Windows和Linux环境下搭建SVN服务器

    --------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...

  2. CentOS7下搭建SVN服务器

    (1).安装SVN 1)安装SVN [root@youxi1 ~]# yum -y install subversion mod_dav_svn [root@youxi1 ~]# cat /etc/s ...

  3. Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体

    http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get i ...

  4. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

  5. Winxp下搭建SVN服务器

    本文介绍一种在winxp下搭建SVN服务器的方法. (1) 需要下载Slik-Subversion和TortoiseSVN两个软件.我使用的版本是Slik-Subversion-1.8.3-1-win ...

  6. ubuntu下搭建svn服务器

    [ubuntu下搭建svn服务器] 1.创建目录 mkdir ~/svn/repository/ 2.创建仓库 svnadmin create repository 3.进入 repository/c ...

  7. Centos6.8下搭建SVN服务器

    1.Centos6.8下搭建SVN服务器 Subversion是一个自由,开源的版本控制系统.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一 ...

  8. 转:Mac下搭建svn服务器和XCode配置svn

    Mac下搭建svn服务器和XCode配置svn 先打开命令行终端. 1.创建svn repository svnadmin create /yourpath/svnroot/repository 2. ...

  9. Linux下搭建SVN服务器及自动更新项目文件到web目录(www)的方法

    首先搭建SVN服务器 1,安装SVN服务端 直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装) sudo apt-get install subversion   ...

  10. 【SVN】CentOS7.0下搭建SVN服务器

    SVN服务器搭建 最近接手了天赋吉运的SVN项目管理,那么学会搭建SVN服务器就成为了必须的技能.这篇文章就来讲一讲在CentOS7.0下如何搭建SVN服务器 1,下载安装SVN版本 yum inst ...

随机推荐

  1. 51Nod - 1384

    全排列函数解法 #include <iostream> #include <cstdio> #include <cstring> #include <cmat ...

  2. js中defer实现等文档加载完在执行脚本

    我们可以使用defer来实现类似window.onload的功能: <script src="../CGI-bin/delscript.js" defer></s ...

  3. Python- - -函数目录

    一.函数的定义.调用.返回值.参数. 二.名称空间.作用域.加载顺序.取值顺序. 三.函数的嵌套.作用域链.函数名的应用.闭包. 四.装饰器

  4. Ubuntu 16.04+GTX970 黑屏无法安装解决方法

    参考http://www.linuxidc.com/Linux/2017-01/139318.htm http://blog.sciencenet.cn/blog-655584-877622.html ...

  5. 微信小程序Promise对象

    Promise 对象 Promise 的含义 基本用法 Promise.prototype.then() Promise.prototype.catch() Promise.prototype.fin ...

  6. canvas绘图基础

    <canvas>元素是HTML5中的绘图元素,通过定义一个画布区域,然后使用javascript动态地在这个区域里面绘制图形,对于2D和3D图形都可以绘制,我们将其分成2D上下文和WebG ...

  7. c# 抽象类与接口【学习笔记】

    最近一直在学着面向接口编程,总是会写出好多的接口然后继承,现在开始发现了一些好处,就是在一个方法里面使用另一个方法的时候, 用接口代替这个被使用的方法,可以减少代码的耦合,后期的扩展也方便,代码易于维 ...

  8. python单例(重点)

    单例 目标 单例设计模式 __new__ 方法 Python 中的单例 01. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题的成熟的 ...

  9. python面向对象封装案例(附:is和==的区别)

    面向对象封装案例 目标 封装 小明爱跑步 存放家具 01. 封装 封装 是面向对象编程的一大特点 面向对象编程的 第一步 —— 将 属性 和 方法 封装 到一个抽象的 类 中 外界 使用 类 创建 对 ...

  10. 复制目录及其子目录下所有文件DOC

    echo 开始同步代码 set src_home=F:\work\sign\Bonade-Sign set dest_home=F:\work\testGit\sign5\Bonade-Sign se ...