騰訊雲使用筆記二: 安裝svn服務器及web同步

官方文檔參考:https://cloud.tencent.com/dev...web

A01:安裝subversion

sudo apt-get install subversion

A02:建立倉庫

不少目錄能夠放subversion文件倉庫,最多見的是/usr/local/svn和/home/svnubuntu

sudo mkdir -p /home/svn/youshengyouse 
sudo svnadmin create /home/svn/youshengyouse
//說明:先建立目錄(-p多級建立),再在該目錄下新建版本庫

A03:啓動svn網絡服務

svnserve -d -r /home/svn
// svnserve不要寫成svnserver
// -d表示以守護方式啓動
// -r表示倉庫的根目錄,這樣svn://ip地址/youshengyouse/就表示對應的倉庫路徑爲/home/svn/youshengyouse

A04:配置倉庫

先備份配置文件安全

ubuntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp svnserve.conf svnserve.conf.bak20180907

/home/svn/youshengyouse/conf/svnserve.conf文件的內容以下bash

anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

/home/svn/youshengyouse/conf/passwd文件的內容以下
先備份buntu@VM-0-8-ubuntu:/home/svn/fangshuixiushan/conf$ sudo cp passwd passwd.bak20180907網絡

[users]
aaaa=aaaamima
bbbb=bbbbmima

/home/svn/youshengyouse/conf/authz(先備份)socket

[groups]
develop = aaaa,bbbb
manger = aaaa
[/]
@develop=rw
*=r

修改後要重啓svn

svnserve -d -r /home/svn
//若是報錯svnserve: E000098: Can't bind server socket: Address already in use
查下svn當前佔的端口
root@VM-0-14-ubuntu:~# ps -aux | grep svn
root     16960  0.0  0.1  72492   940 ?        Ss   14:29   0:00 svnserve -d -r /home/svn
root     19765  0.0  0.0  13232   880 pts/5    S+   15:20   0:00 grep --color=auto svn
//kill進程
kill -9 16960 
//再啓動
svnserve -d -r /home/svn

A05:編輯騰訊雲安全組

添加規則
0.0.0.0/0 TCP:3690 容許 -
不然會拒絕svn訪問post

A06:安裝客戶端

下載地址:https://osdn.net/projects/tor...測試

A07:測試

倉庫路徑爲 svn://ip地址/youshengyouse/

檢出(checkout)成功,新建一文件上傳,也成功,ok,萬里長征,完成60%網站

常見問題

提交若是報錯
Can't connect to host '134.175.42.125': 因爲目標計算機積極拒絕,沒法鏈接。
緣由1:svn服務未啓動

line 1: Section header expected
緣由:通常是本個配置文件格工或哪裏多了空格之類的

can't open file db/txn-current-lock:permission denied
緣由:權限不夠
$ sudo chmod -R 777 /home/svn/youshengyouse

post-commit hook failed (exit code 255) with no output.
緣由: post-commit 腳本文件的權限不對,post-commit 腳本必須有 +x 權限。
sudo chmod 777 /home/svn/youshengyouse/hooks/post-commit

============如何讓svn代碼與web網站同步=========

只在svn提交就能夠,不要再向網站提交代碼

B01:新建鉤子文件 post-commit

#!/bin/bash
# 基本變量
export LANG=en_US.UTF-8
dateTime=`date +%F`
dateTimeMinute=`date +%H%M%S`
binSvn=/usr/bin/svn                     # 你svn命令的絕對路徑,若是不知道,請用find / -name svn查找
dirHtmlApp=/var/www/youshengyouse/      # 檢出的web站點根目錄
logFileName=/tmp/youshengyouse_svnhooks_${dateTime}.log
# svn配置
#   [1] REPOS-PATH   倉庫路徑
#   [2] REV          剛執行修訂版本號
#   [3] TXN-NAME     (the name of the transaction that has become REV)

REPOS="$1"
REV="$2"

# 檢出或者更新subversion,鉤子的核心功能
echo  "-- $dateTimeMinute" >> $logFileName

# 先要將svn倉庫中的內容檢出到網站對應的目錄中,如何判斷有沒有檢出過呢,就是看是否有文件夾.svn
# 如是檢出過,就直接更新就行

if [ ! -d $dirHtmlApp/.svn ]; then
   # 檢出SVN
   echo "$binSvn co file://$REPOS/  $dirHtmlApp" >> $logFileName
   # 使用命令co檢出
   $binSvn co file://$REPOS/  $dirHtmlApp
   if [ $? -eq 0 ]; then
      echo  "checkout ok"  >> $logFileName
   else
      echo  "checkout error"   >>  $logFileName
   fi
else
   # 更新svn
   echo " $binSvn up $REV $dirHtmlApp " >> $logFileName
   # 使用up命令更新
   $binSvn up $REV $dirHtmlApp   >> $logFileName
   if [ $? -eq 0 ]; then
      echo  "  update sucess "  >> $logFileName
   else
       echo  "  update fial "   >>  $logFileName
   fi
fi
echo  "--" >>  $logFileName

B02:上傳

建議先用測試下,檢出,上傳,刪除後,確認無誤後再進行批量操做

相關文章
相關標籤/搜索