1、如果仅仅只是搭建 svn 服务器:

  (a)、先检查 svn 是否已经安装了

  1. rpm -qa subversion #输入这个命令后,会出现 subversion 版本号

    (b)、如果没有安装,使用下面命令:

  1. yum install subversion [-y] #这个 -y 命令,是表示在找到包之后,是否自动 选择 y,全自动。如果没有,在找到包之后,会询问 y / n

    (c)、安装 完成后 使用下面命令 查看版本:

  1. svnserve --version #查看版本号,是 -- 不是 - 这个是要注意的

2、创建 svn 根目录,下面的命令的意思是 在 /home 文件夹中 创建 svn 文件夹:

  (a)、mkdir 是 linux 下创建文件夹的命令

  1. mkdir /home/svn  #是 /home/ 下创建 svn 目录,这个是动态的,看自己喜欢创建在哪里, svn 是多版本库的根目录。
    mkdir /home/svn/test #这里创建一个 test 的目录,进行一个版本库的存放

3、创建 使用下面命令 创建版本库:

  (a)、使用上面命令后,会生成几个 文件 和 文件夹,网上经常看到 ls -l 只是列出 文件夹 和 文件 列表,并不是创建。

  (b)、文件夹 ---- conf、db、hooks、locks

  (c)、文件 ---- format、README.txt

  (d)、目录结构的 描述,请跳转到最下面。

  1. svnadmin create [path] #这里填写的是文件夹路径,如果是当前目录 写 ./ 不能省略,我这里创建的是一个 test 路径的

4、ls -l 之后,出现的信息图解:

5、接下来是配置一个版本库的权限 和 账号密码:

  (a)、我们先切换到 上面成功的目录下 的 conf 文件夹中

  (b)、主要修改 三个文件:authz ---- 是权限 配置文件、passwd ---- 是配置 访问 用户 的 账号和密码、svnserve.conf 是总配置文件

5.1、我在这里先修改 passwd 文件

  (a)、使用 vi / vim passwd 打开文件,在图形界面中,可以使用 gedit。

  (b)、在 vi / vim 命令下,使用编辑 按 i 进入编辑模式。

  (c)、Ctrl + c 是 切换成命令状态,:wq 是 保存并退出,如果不保存就退出 使用 :q!。如果修改过了 不能直接用 :q 退出。

  1. # 在 [users] 下面写 访问的账号和密码,写法是 账号 = 密码
  2. # 例如下面:
  3. [users]
  4. test = # 这是第一个账号和密码
  5. test1 = # 这是第二个账号和密码

5.2、修改 authz 权限文件:

  1. # 我们可以直接 赋值 用户的权限,带权限的写法,应该写在 [<版本库名>:<路径>] 下面,代表那个路径,那些用户有权限。
  2. test = rw # 这里的 test 是在 passwd 文件中定义的用户,rw 代表 读和写的权限。
  3.  
  4. #如果 有很多 账号,这个时候,就需要分组了,在 [group] 下写
  5. [group]
  6. vip = test, test1 # 这里表示,创建一个 分组叫 vip,使用的时候通过 @vip 使用。
  7.  
  8. # 在 authz 文件最下面
  9. # [<版本库名>:<路径>]
  10. # 1、下面的表示 版本库的根目录下,只有 admin 这个角色才有 rw 权限
  11. [/] # 这个 / 根目录 是只 svnserve 启动时候,指定的根目录。
  12. @admin = rw # 这里的 admin 是 上面 group 下的分组,不是系统自带的,表示 admin 分组中的用户,都有 读写权限
    #我上面只定义了 一个 vip 用户组,所以只能 是 vip,admin 这个用户组错误的。

5.3、配置 svnserve.conf,修改 了 svnserve.conf 这个文件后是需要重启 svn 服务的,而修改上面 的 passwd 和 authz 文件是不需要重启的:

  1. #需要修改的,基本只有5条,这5条原本是本注释掉的。
  2. #write 是可读可写,read 是只读,none 是无访问权限
  3. [general]
  4. #控制非鉴权用户访问版本库的权限。
  5. anon-access=none #匿名访问的权限,可以是 read, write,none,默认是 read
  6.  
  7. # 控制鉴权用户访问版本库的权限
  8. auth-access=write #使用授权用户有写的权限 默认是 write
  9.  
  10. #指定用户账号和密码的文件名,用法 与 下面的 authz 一样.
  11. password-db=passwd #用户数据库的路径
  12.  
  13. #指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。 除非指定绝对路径,否则文件位置为相对conf目录的相对路径。 缺省值:authz
  14. authz-db=authz #访问控制文件路径
  15.  
  16. #指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的 认证域相同,建议使用相同的用户名口令数据文件.
  17. realm=fist....

6、先杀死 svn 服务,再重启:

  1. killall svnserve #关闭所有 svn 服务

7、以多库方式 启动 svnserve 服务:

  1. svnserve -d -r /home/svn [--listen-port 端口号]
    #上面提到,test 是我们测试用的版本库,然后,我们以多库方式启动 svn 后,test 版本库的路径就是 svn://127.0.0.1/test
    #-d 是表示守护线程后台运行
    #-r 表示一定目录
    #--listen-port 是表示监听的端口号,可选,默认是 3690

Ps:

  (1)、这里需要新手去看,否则很容易浪费时间,菜鸟教程地址:http://www.runoob.com/svn/svn-start-mode.html

  (2)、由于 -r 的配置方式不一样,svn 启动 区分两种模式

  (3)、第一种: -r 直接指定到版本库(称为 单库 svnserve 方式)

    例如这篇文章的例子: -r /home/svn/test 我启动的时候 在这里直接指定到了 test 这个目录下

    authz 配置的时候,[/] 直接表示 test 这个根目录。

    客户端访问的时候的 URL:  svn://127.0.0.1/ 即可访问到 test 版本库

  (4)、第二种: -r 指定到版本库的上级目录(称为 多库 svnserve 方式)

    多库启动  -r /home/svn

    这个时候的 authz 配置的写法就不用了,应该成 [<版本库名>:/] 这样的。

    客户端访问的URL: svn://127.0.0.1/test 才可以访问 到版本库 test

8、配置完成后,可以在本地 使用 命令,查看是否启用成功:

  1. svn co svn://127.0.0.1/[版本库]

9、有些服务器,需要关闭防火墙: centos 7 默认防火墙:filewalld 文档:https://blog.csdn.net/wangmx1993328/article/details/80738012

10、有些服务器关闭了防火墙之后,还是拒绝访问的,再启动一次执行一次 svnserve -dr [路径] 试试

svn客户端:

(1)、修改配置文件,使下次登录时不记录密码
windows环境,在开始菜单->运行输入:%appdata%/subversion,找到config文件【反正自己找到即可】;
unix/linux环境,编辑~/.subversion/config文件。这个试过可以的。
分别对以下两行取消注释、然后保存退出;
# store-passwords = no
# store-auth-creds = no

(2)、删除认证缓存设置

windows环境,删除:%appdata%/subversion/auth
unix/linux环境执行:rm -rf ~/.subversion/auth

搭建 http 服务器访问:

1、先安装 apache 服务

  1. #apache服务器,让我们的svn 服务器支持http协议访问,而不仅是svn://协议
  2. yum install -y httpd
  3.  
  4. #apache操作svn模块
  5. yum install -y mod_dav_svn

2、修改配置文件 /etc/httpd/conf.d/subversion.conf(没有则新建),内容为: 不如不行,参考:http://room-bb.iteye.com/blog/2293178

  1. LoadModule dav_svn_module modules/mod_dav_svn.so
  2. LoadModule authz_svn_module modules/mod_authz_svn.so
  3.  
  4. <Location /svn>
  5. DAV svn
  6. SVNListParentPath on
  7. SVNPath /home/svn/test #只支持一个主目录的SVN版本库
       SVNParentPath /home/svn/ #支持多个相同父目录的SVN版本库  
  8. AuthType Basic
  9. Satisfy Any
  10. AuthName "Subversion repos"
  11. AuthUserFile /home/svn/conf/accesspwd
  12. AuthzSVNAccessFile /home/svn/conf/authz
  13. Require valid-user
  14. </Location>

3、创建 accesspwd 文件:

  1. htpasswd -c -m /home/svn/conf/accesspwd root # 在/home/svn/conf 下面创建一个叫 accesspwd 的文件 , root 的用户名

4、设置 权限 目录

  1. chown -R apache:apache /home/svn/

搭建 websvn :

1、因为 websvn 是 php 写的,所以要安装 php

  1. yum install -y php

2、下载 websvn 到 /var/www/html 目录下面

  1. cd /var/www/html # 切换到 /var/www/html 目录
  2. wget http://websvn.tigris.org/files/documents/1380/49057/websvn-2.3.3.zip #下载 websvn 包

3、解压 websvn 包

  1. unzip websvn-2.3..zip #解压 websvn 包
  2. mv websvn-2.3. websvn #把 websvn-2.3.3 移动到 websvn 文件夹中

4、配置 文件:

  1. cd /var/www/html/websvn/include #切换到 /var/www/html/websvn/include 目录
  2. cp distconfig.php config.php #复制 disptcofig.php 文件内容到 config.php
  3. vi config.php
  4.  
  5. #修改的配置如下面:
    # 1、这下面的基本是注释掉,并且修改好路径就行了,路径按下面例子填写就好了。

  // Configure these lines if your commands aren't on your path.

  //

  $config->setSVNCommandPath('/usr/bin');// e.g. c:\\program files\\subversion\\bin

  $config->setDiffPath('/usr/bin');

  // For syntax colouring, if option enabled...

  $config->setEnscriptPath('/usr/bin');

  $config->setSedPath('/bin');

  // For delivered tarballs, if option enabled...

  $config->setTarPath('/bin');

  // For delivered GZIP'd files and tarballs, if option enabled...

  $config->setGZipPath('/bin');


  $config->parentPath('[svn文件路径]'); #这个是单一版本库的

  $config->parentPath('[svn文件路径]', 'group'); #这个是多库的

#3、下面这些直接复制粘贴到 $config->parentPath('/svn/'); 下面就行了

  $extEnscript[".pl"]="perl";

  $extEnscript[".py"]="python";

  $extEnscript[".sql"]="sql";

  $extEnscript[".java"]="java";

  $extEnscript[".html"]="html";

  $extEnscript[".xml"]="html";

  $extEnscript[".thtml"]="html";

  $extEnscript[".tpl"]="html";

  $extEnscript[".sh"]="bash";

5、重启 httpd 服务

  1. systemctl restart httpd.service

6、在浏览器中打开,输入URL: http:// IP地址/websvn

7、如果遇到 Unable to find "enscript" tool at location "/usr/bin/enscript 这样的问题,安装一下 enscript 就能修复了。

  1. yum install enscript

注意:linux 上 svn 用浏览器打开的界面都比较丑,如果想要下面的,需要 在 windows 系统上,搭建 VisualSVN server 。

【Centos】搭建 SVN 服务器的更多相关文章

  1. [记录]CentOS搭建SVN服务器(主从同步)

    CentOS搭建SVN服务器(主从同步)1.安装步骤如下: 1)安装: #yum install subversion 2)查看安装位置: #rpm -ql subversion 3)查看版本: #/ ...

  2. CentOS搭建SVN服务器,并通过Apache HTTP方式访问

    摘要:本文主要讲述了在centos 6.5环境下搭建svn服务器,可通过svn:\\IP方式访问.同时由于部分公司内网端口限制,并不能访问外网的svn服务器,所以特地结合了apache服务器,使得可以 ...

  3. 【svn】Centos搭建svn服务器环境

    1.需求描述 在Centos系统中搭建svn服务器环境 2.搭建过程 2.1 yum安装svn [root@localhost /]# yum install svn  2.2 新建目录存储svn目录 ...

  4. CentOS 搭建 SVN 服务器 及使用教程

    服务器与客户端 1.搭建SVN服务器 ① CentOS安装SVN 命令: yum -y install subversion 检查是否安装成功 命令: svn --version 如果显示如下内容说明 ...

  5. centos搭建svn服务器

    1.在centos6.5上面搭建svn服务器,安装svn服务器:yum install subversion 2.在任意目录下创建仓库目录,这里放在/data/mypros目录下 3.执行命令:svn ...

  6. Linux(CentOS)搭建SVN服务器全攻略

    虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装#yum ...

  7. 使用Linux(CentOS)搭建SVN服务器全攻略

    虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN 安装 #yu ...

  8. Centos搭建SVN服务器三步曲

    搭建SVN服务,有效的管理代码,以下三步可以快速搞定.1.安装 #yum install subversion 判断是否安装成功#subversion -v svnserve, version 1.6 ...

  9. centos搭建svn 服务器 并同步到web 目录(总结)

    配置搭建步骤: Linux平台的SVN服务器的配置及搭建 从本地提交代码到svn代码库. 将代码库中代码同步到web目录: 1.在web目录中checkout版本库 进入/home/www目录下  ( ...

  10. CentOS搭建svn服务器支持https访问

    在CentOS6.3 64位机器上配置SVN服务器,并设置只允许HTTPS连接,可以配置多个repos源,每个源都拥有自己的组和成员,用于权限控制. 安装相关软件 Apache yum install ...

随机推荐

  1. JS/js是什么?

    JavaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: ECMAScript,由 ECMA-262 定义,提供核心语言功能; 文档对象模型(DOM),提供访问和操作网页 ...

  2. C# 哥德巴赫猜想的实现方式 region分区编写

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  3. flex 布局方式

    开始啦 1. flex-direction 有关主轴的对齐方式 column 自上到下 row 自左到右 -->默认值 row-reverse 自右到左 column-reverse 自下到上 ...

  4. 利用PL/SQL从Oracle数据库导出和导入数据

    转自:https://www.jb51.net/article/109768.htm 本文实例为大家分享了使用PL/SQL从Oracle数据库导出和导入数据的方法,供大家参考,具体内容如下 1.导出数 ...

  5. Django基础目录

    Django基础(一):基础引用 Django基础(二):环境配置 Django—model系统:ORM基础 Django—model系统:ORM字段和参数 Django—model系统:ORM对数据 ...

  6. Scrapy 中常用的中间件和管道组件

    Pipeline用法 储存到MongoDB pipline.py中的代码 import pymongo class MongoPipeline(object): def __init__(self, ...

  7. 9.jsonp的实现原理

    1. 由于浏览器的安全性限制,不允许AJAX访问 协议不同.域名不同.端口号不同的数据接口,浏览器认为这种访问不安全:2. 以通过动态创建script标签的形式,把script标签的src属性,指向数 ...

  8. C语言Makefile文件制作

    本文摘抄自“跟我一起写Makefile ”,只是原文中我自己感觉比较精要的一部分,并且只针对C语言,使用GCC编译器. 原文请看这里:http://wiki.ubuntu.org.cn/%E8%B7% ...

  9. 用js刷剑指offer(顺时针打印数组)

    题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...

  10. ggplot2入门与进阶(下)

    出处:http://www.cellyse.com/how_to_use_gggplot2_part2/ 更多实战 例一 Michaelis-Menten动力学方程 这个例子中采用出自文献中的一组有关 ...