1、仓库放在 /var/svn/ 目录下,并且仓库名为 project

2、创建用户组user,该组下添加两个成员user1、user2,密码直接用用户名,两用户可以checkout代码和提交代码

3、利用SVN的钩子实现当仓库的代码更新的时候自动同步至我们的web目录,在这里,我的web目录在 /var/www/html 下

一、搭建svn环境并创建仓库:

1、安装Subversion:

  yum install -y subversion

2、检测是否安装成功(查看svn版本号)

  svnserve --version

3、创建版本库

  先建目录 mkdir /var/svn

  CD到这个目录 cd /var/svn

  创建版本库 svnadmin create /var/svn/project cd project (会看到自动生成的版本库文件 conf db format hooks locks README.txt)

  

二、创建用户组及用户:

1、 进入版本库中的配置目录conf(三个文件): svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz)。

2、修改权限配置文件:vim authz

  

3、配置用户名命令文件:vim passwd

  

4、配置SVN服务综合配置文件svnserve.conf

  找到以下配置项,将前面的#号去掉,然后做相应的配置

   anon-access = none 匿名用户访问权限:无

  auth-access = write 普通用户访问权限:读、写

  password-db = passwd 密码文件

  authz-db = authz 权限配置文件

  realm = /var/svn/project 版本库所在

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

5、启动svn服务:

  svnserve -d -r /var/svn

  如果提示:svnserve: E000098: Can't bind server socket: Address already in use

  证明现在svn已经被启动了,由于我们修改了配置文件,因此要重启svn服务

  停止svn服务 killall svnserve

  再运行 svnserve -d -r /var/svn,进行启动服务  

6、测试服务器:

   我们在web目录测试(/www/html)

   cd //www/html

   svn co svn://localhost/project (如果提示:Checked out revision 1. 表示checkout成功)

  我们添加新文件来测试是否提交成功

  cd //www/html

  touch index.php

  svn add index.php  成功的话会显示 (A index.php)

  svn commit index.php -m "测试提交文件" (如果成功会显示:Adding index.php Transmitting file data . Committed revision 2. 则表示我们svn服务器搭建成功!文件已经能够推送了。)

7、本地拉取、推送

  

  

  输入用户名称和密码(如果失败去看看 端口3690是否被禁用 )

三、实现svn更新自动同步到web目录:

  1、在web目录中checkout版本库

  这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才checkout的版本库删掉,我们来一次比较正式的checkout:

  svn co svn://localhost/project /www/html --username user1(SVN账号) --user1(SVN密码)

  进入/var/svn/project/hooks下,建立post-commit文件:

  cd /var/svn/project/hooks

  vim post-commit

  //在该文件里添加如下代码,保存

  #!/bin/sh

  #设定环境变量,如果没有设定可能会出现update报错

  #设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK

  export LANG=en_US.utf8

  SVN_PATH=/usr/bin/svn //这里不用改

  WEB_PATH=/www/html //web目录,如果你的不同,可以改

  //这里的用户随便一个就好

  $SVN_PATH update $WEB_PATH --username 'user1' --password 'user1' --no-auth-cache

  保存退出。

  修改post-commit用户为www目录用户

  chown apache:apache post-commit //我的 /home/www 的用户组和所有者都是apache

  给post-commit 执行权限:

  chmod 755 post-commit

  本博客主要参考了:http://blog.csdn.net/baidu_30000217/article/details/51396016?locationNum=1

在linux上搭建SVN服务器并自动更新至WEB目录的更多相关文章

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

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

  2. CentOS下安装配置SVN服务器并自动同步到web目录

    一.安装 yum install subversion测试是否安装成功 /usr/bin/svnserve --version如提示以下内容,说明已安装成功 svnserve,版本 1.6.11 (r ...

  3. linux上搭建svn服务器

    1.检查当前版本,没有的话用yum安装rpm -qa subversion 2.安装yum install subversion -y 2.建库mkdir -p /home/svn/projectsv ...

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

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

  5. 在路由器上搭建SVN服务器

    在路由器上搭建SVN服务器 SVN托管服务大家都不陌生了,我最早开始用的是谷歌提供的SVN,因为在上面托管的项目都是开源的,所以当有些项目不方便在网上公开的时候,就需要自己搭建SVN服务器了.wind ...

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

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

  7. CentOS Linux上搭建PPPoE服务器及拨号设置

    CentOS Linux上搭建PPPoE服务器及拨号设置 搭建PPPoE,成功了的话,就觉得超级简单,在CentOS Linux更是5步左右就能搞定. 1.安装pppoe,安装完成后,会有pppoe- ...

  8. 嵌入式Linux上通过boa服务器实现cgi/html的web上网【转】

    转自:http://blog.csdn.net/tianmohust/article/details/6595996 版权声明:本文为博主原创文章,未经博主允许不得转载. 嵌入式Linux上通过boa ...

  9. 如何在win上搭建SVN服务器

    本博文转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本, ...

随机推荐

  1. 多生产者多消费者(第二种方式2.1)基于BlockingQueue

    public class Producer implements Runnable { //静态变量只初始化一次 private static AtomicInteger count = new At ...

  2. 如何创建Kafka客户端:Avro Producer和Consumer Client

    1.目标 - Kafka客户端 在本文的Kafka客户端中,我们将学习如何使用Kafka API 创建Apache Kafka客户端.有几种方法可以创建Kafka客户端,例如最多一次,至少一次,以及一 ...

  3. Go语言 ( 切片)

    本文主要介绍Go语言中切片(slice)及它的基本使用. 引子 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性. 例如: func arraySum(x []int) in ...

  4. tkinter学习笔记_06

    12.弹窗 messagebox import tkinter as tk from tkinter import messagebox root = tk.Tk() root.title(" ...

  5. [SOJ #538]好数 [CC]FAVNUM(2019-8-6考试)

    题目大意:给定$n$个正整数,求$[l,r]$中第$k$小的”好数“.$l,r\leqslant10^{18},n\leqslant62$,出现的其他数均$\leqslant10^{50}$ 好数定义 ...

  6. 保研经验帖----江西师范大学 to 华中科技大学

    呼,距离拿到华科cs的offer也有一段时间,有好几次准备动手写这篇经验帖,但就是理不清自己想表达什么,今早起来状态还不错,洗漱的时候思路居然通透了,哈哈哈~ 一.基本情况 先简单介绍笔者的一些基本情 ...

  7. CCF 2016-12-1 中间数

    CCF 2016-12-1 中间数 题目 问题描述 在一个整数序列a1, a2, -, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数.在一个序列中,可能存在多个下标不相 ...

  8. K8S conul部署

    官网有Helm方式的安装文档(https://www.consul.io/docs/platform/k8s/index.html) 一,准备工作: 1,k8s环境 2,nfs服务器 二,创建PV n ...

  9. 10 查询字符串,X字段必须包含(不包含)XX;_all原理

    指定某个字段,必须要包含XX字符 GET /beauties/my/_search?q=Name:Chang Wei   搜出 某个字段不包含XX字符 的所有内容 GET /beauties/my/_ ...

  10. Web应用的生命周期(客户端)

    典型的一个Web应用的生命周期从用户在浏览器输入一串URL,或者单击一个链接开始(就是访问一个页面).而这个生命周期的结束就是我们关闭这个页面. 响应流程: 用户输入一个 URL(生命周期开始) 客户 ...