1. 程式人生 > >在Centos7上搭建SVN伺服器並實現自動同步至web目錄

在Centos7上搭建SVN伺服器並實現自動同步至web目錄

前言

由於最近跟學長一起合作完成一個小專案,然後我倆比較熟悉的版本控制是SVN,就考慮著在伺服器上搭建一個SVN伺服器。現在在這裡給出簡單的搭建過程。
(其實吧,能用git就儘量用git吧,好處自己百度,有關搭建請參考我的另一篇部落格搭建伺服器上的GIT並實現自動同步到站點目錄(www),這篇部落格與git搭建的過程應該是基本一樣的)

預期目的:

1、倉庫放在 /var/svn/ 目錄下,並且倉庫名為 project

2、建立使用者組lsgogroup,該組下新增兩個成員lsgoweb1、lsgoweb2,密碼直接用使用者名稱,兩使用者可以checkout程式碼和提交程式碼

3、利用SVN的鉤子實現當倉庫的程式碼更新的時候自動同步至我們的web目錄,在這裡,我的web目錄在 /home/www/ 下

一、搭建svn環境並建立倉庫:

1、安裝Subversion:

yum install -y subversion

2、檢測是否安裝成功(檢視svn版本號)

svnserve --version

3、建立版本庫

//先建目錄
mkdir /var/svn
cd /var/svn
//建立版本庫
svnadmin create /var/svn/project
cd project
//會看到自動生成的版本庫檔案
conf  db  format  hooks  locks  README.txt

至此,svn環境搭建成功。

二、建立使用者組及使用者:

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服務詳情
ps aux | grep svn
//將svn服務強制停止  其中790為svn服務的ID號,-9是kill的引數
kill -9 790

或者用

killall svnserve

再執行 svnserve -d -r /var/svn,進行啟動服務

6、測試伺服器:

//我們在web目錄測試(/home/www)
cd /home/www
svn co svn://localhost/project

如果提示:Checked out revision 1.
表示checkout成功

我們新增新檔案來測試是否提交成功

cd /home/www
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、本地拉取、推送

在本地首先要安裝SVN吧,具體百度。。。

這裡寫圖片描述

填寫資訊:

這裡寫圖片描述

點選ok,提示輸入使用者名稱和密碼

就填剛才我們建立的lsgoweb1或lsgoweb2,和對應的密碼即可。

三、實現svn更新自動同步到web目錄:

1、在web目錄中checkout版本庫

這一步算是比較關鍵的一步了,當時我搭建的時候試了無數次,就是缺少了這一步。把剛才checkout的版本庫刪掉,我們來一次比較正式的checkout:

svn co svn://localhost/project /home/www --username lsgoweb1(SVN賬號) --lsgoweb1(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=/home/www  //web目錄,如果你的不同,可以改
//這裡的使用者隨便一個就好
$SVN_PATH update $WEB_PATH --username 'lsgoweb1' --password 'lsgoweb1' --no-auth-cache

儲存退出。

修改post-commit使用者為www目錄使用者

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

給post-commit 執行許可權:

chmod 755 post-commit

麻蛋,終於寫完了。。。。

相關推薦

Centos7搭建SVN伺服器實現自動同步web目錄

前言: 由於最近跟學長一起合作完成一個小專案,然後我倆比較熟悉的版本控制是SVN,就考慮著在伺服器上搭建一個SVN伺服器。現在在這裡給出簡單的搭建過程。 (其實吧,能用git就儘量用git吧,好處自己百度,有關搭建請參考我的另一篇部落格搭建伺服器上的GIT並

CentOS 建立SVN 伺服器,並且自動同步WEB 目錄

一、安裝Subversion #yum install subversion     二,基本的SVN伺服器配置 1,新建一個目錄用於儲存SVN所有檔案# mkdir /home/svn 2,新建一個版本倉庫# svnadmin create /home/sv

centos7部署vnc伺服器實現遠端桌面

centos7上部署vnc伺服器並實現遠端桌面 centos7上進行一下操作 [root@localhost ~]# yum

Centos7 安裝搭建SVN伺服器 配置及程式碼同步web根目錄

一丶 SVN簡介 SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。網際網路上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開

Linux安裝SVN實現自動同步Web目錄

一:安裝SVN1,檢查伺服器是否安裝SVN svn --version 已安裝: svn, version 1.6.11 (r934486) compiled Aug 17 2015, 08:37:43

win環境下SVN利用鉤子實現程式碼同步WEB目錄

思路:  找 到SVN Server中的倉庫(Repositories)資料夾的位置,在相應的專案資料夾中找到hooks資料夾。在該資料夾中新增一個post- commit檔案;當有commit動作發生時(提交到SVN Server時)就會執行這個post-commit檔案,

linux中svn將倉庫程式碼自動同步制定目錄

export LANG=zh_CN.UTF-8 /usr/local/subversion/bin/svn update --username ****** --password ****** /ho

SVN利用鉤子實現程式碼同步web目錄

系統環境:windows server 2003 web伺服器:IIS 第一步:svn伺服器的安裝 由於使用的是windows伺服器,所以我選擇了最方便配置的VisualSVN伺服器。到VisualSVN官網上下載VisualSVN的msi安裝包,在windows

linux下構建svn伺服器實現專案自動部署

在Linux系統中搭建svn服務所需要用到的軟體叫做subversion,可以通過yum來進行安裝. svn服務是為了實現協同工作,即一個團隊公眾開發一個專案而不導致程式碼混亂,不會出現今天我修改的程式碼在不通知同事的情況下又被他修改了.

linux線上搭建svn環境實現傳操作

搭建步驟: 1、檢查是否已經有svn 2、安裝subversion 3、檢查是否安裝成功 4、建立svn資源倉庫 5、新增使用者及密碼,配置許可權,配置資源庫許可權 6、啟動或者重啟服務 7、從機安裝subversion 8、測試首先檢視linux環境下是否安裝了svn如果沒

Centos7搭建FreeSwitch伺服器

1.下載原始碼 進入目錄 cd /usr/local/src 使用git獲取原始碼,沒有安裝git的話需要先安裝 執行 yum install git 然後執行 git clone -b v1.6 https://freeswitch.org/stash/scm

centos7搭建git伺服器

目錄 環境: 安裝git和建立使用者 建立證書登入 初始化git倉庫 踩得坑 tortisegit使用 環境: centos7,git 1.8.3,tortisegit 安裝git和建立使用者 注:$代表用root使用者登入 # 安裝Git $ y

在Linux搭建SVN伺服器

1.安裝SVN yum -y install subversion 輸入svnserve --version 檢視是否安裝成功 2.建立版本庫目錄和版本庫 mkdir -p /var/svn/svnrepos/ #-p遞迴建立目錄 輸入 svnadmin create /var/svn

在linux伺服器搭建SVN伺服器

收集了網上很多資料終於搭好啦。 系統環境:centOS7.0 一:解除安裝SVN(如果你是一臺新的系統機可以忽略這一步) 1: rpm -qa subversion 查詢SVN是否有過低版本SVN(沒有安裝過則不顯示) 2:yum removesubversion 解

Vue專案部署到遠端伺服器 實現自動遠端同步專案

  使用Vue開發專案時通常是前後端分離的,這樣就前後端各有一個地址,使用者訪問的是前端的地址,即前端路由,前端再向後端地址請求頁面資料然後渲染頁面。本文簡單介紹通過Apache2部署前端專案到伺服器,以及如何將本地專案自動推送到遠端服務。   我的伺服器系統

Centos下搭建SVN伺服器同步倉庫內容到WEB目錄

第一步:安裝svnversion Centos下可以使用yum安裝,自動配置環境變數 yum install subversion 安裝完成後可以用 svn help來檢查是否安裝成功 第二步:配置svnversion mkdir -p /home/svn/r

CentOS7搭建Maven伺服器

 1. 安裝JAVA #yum install java #java -version java version "1.7.0_101" OpenJDK Runtime Environment (rhel-2.6.6.1.el7_2-x86_64 u101-b00) O

經驗分享之在CentOS 7搭建SVN伺服器

背景:上一篇文章中介紹瞭如何搭建虛擬機器《經驗分享之使用vagrant安裝linux虛擬機器》,我們的最終目的是搭建SVN伺服器,所以本篇將重點介紹一下如何搭建SVN伺服器。 安裝步驟 這一系列的操

區域網中搭建James伺服器實現與外網收發郵件

一、準備工作 區域網中有兩臺電腦都用Windows XP SP2系統+JDK1.6.0_02,一臺PCA,一臺PCB,PCA當伺服器,PCB當客戶端測試用,當然PCA也可同時充當客戶端。 Apache James(Java Apache Mail Enterprise S

騰訊雲centos7.3搭建SVN伺服器

步驟記錄: 1、yum install subversion 2、svnserve –version 檢查是否安裝成功 3、mkdir -p var/svn/project/first 來到根目錄,建一個專案目錄測試一下 4、svnadmin c