在WDCP一鍵安裝包的基礎上安裝SVN及實現nginx web同步更新

來源:互聯網
上載者:User

仲介交易 HTTP://www.aliyun.com/zixun/aggregation/6858.html">SEO診斷 淘寶客 雲主機 技術大廳

在WDCP一鍵安裝包的基礎上安裝SVN及實現nginx web同步更新

一、安裝

1.查看是否安裝cvs

rpm -qa | grep subversion

2.安裝

yum install subversion

3.測試是否安裝成功

/usr/bin/svnserve --version

如提示以下內容,說明已安裝成功

--------------------------------------

svnserve,版本1.6.11 (r934486)

編譯于Apr 11 2013,17:28:04

版權所有(C) 2000-2009 CollabNet。

Subversion 是開放原始碼軟體,請參閱HTTP://subversion.tigris.org/ 網站。

此產品包含由CollabNet(HTTP://www.Collab.Net/) 開發的軟體。

下列版本庫後端(FS) 模組可用:

* fs_base : 模組只能操作BDB版本庫。

* fs_fs : 模組與文字檔(FSFS)版本庫一起工作。

Cyrus SASL 認證可用。

--------------------------------------------------------------

二、配置

1、新建一個目錄:repos 可用於存儲SVN所有檔

mkdir -p /opt/svndata/repos

注意,這裡的目錄(專案名稱)路徑可以更改,格式如下:

mkdir -p 目錄路徑(如:mkdir -p /www/svn/project)

2、新建一個版本倉庫(使用svnadmin create 目錄倉庫路徑與上面新建的目錄要一致)

svnadmin create /opt/svndata/repos

3、修改svn版本庫的設定檔

vi /opt/svndata/repos/conf/svnserve.conf

按以下格式內容修改,其中realm的值為專案名稱,本例中即為repos。

[general]

anon-access = none

auth-access = write

password-db = /opt/svndata/project/conf/passwd

authz-db = /opt/svndata/project/conf/authz

realm = repos

注意:對使用者設定檔的修改立即生效,不必重啟svn。

4、添加使用者

vi /opt/svndata/repos/conf/passwd

要添加SVN使用者非常簡單,只需在/opt/svn/project/conf/passwd檔添加一個形如「username=password」的條目就可以了。

為了測試,我添加了如下內容:

[users]

# harry = harryssecret

# sally = sallyssecret

pm = pm_pw

server_group = server_pw

client_group = client_pw

test_group = test_pw

5、修改使用者訪問策略

vi /opt/svndata/repos/conf/authz

記錄使用者的訪問策略,以下是參考:

[groups]

project_p = pm

project_s = server_group

project_c = client_group

project_t = test_group

[project:/]

@project_p = rw

* =

[project:/server]

@project_p = rw

@project_s = rw

* =

[project:/client]

@project_p = rw

@project_c = rw

* =

[project:/doc]

@project_p = rw

@project_s = rw

@project_c = rw

@project_t = rw

* =

以上資訊表示,只有pm有根目錄的讀寫權,server_group能訪問server目錄,client_group能訪問client目錄,所有人都可以訪問doc目錄。

當然,以上是比較複雜的許可權控制,如果只是測試,可以簡單些。 建立一個使用者組,把所有的使用者都放到一個使用者組,如下:

[groups]

admin = pm,server_group,client_group,test_group

[/]

@admin = rw

關於許可權的控制,本文不詳情敘述,大家可以去諮詢度娘。

5、啟動svn服務

svnserve -d --listen-port 3690 -r /opt/svndata/repos (以root使用者在運行)

假如有多個專案同時在開發的話,可以通過不同埠可以開啟多個SVN服務,使用TortoiseSVN操作時記得加上端口號。

6、測試svn伺服器

進入網站根目錄

cd /www/web/repos/public_html

svn co svn://127.0.0.1:3690 /www/web/repos/public_html --username pm --password pm_pw

會出現以下認證的提示

-----------------------------------------------------------------------

注意! 你的密碼,對於認證域:

repos

只能明文保存在磁片上! 如果可能的話,請考慮配置你的系統,讓Subversion

可以保存加密後的密碼。 請參閱文檔以獲得詳細資訊。

你可以通過在「/root/.subversion/servers」中設置選項「store-plaiNtext-passwords」為「yes」或「no」,

來避免再次出現此警告。

-----------------------------------------------------------------------

保存未加密的密碼(yes/no)?

輸入「yes」 回車,因為版本倉庫還沒有添加任何檔,所以取出版本為0,如下:

取出版本0。

三、配置post-commit,實現自動同步svn版本庫檔到web目錄

為了可以在修改完代碼提交到SVN伺服器後,WEB伺服器直接同步.需要配置SVN的鉤子,進入hooks目錄,

cd /opt/svndata/repos/hooks

ls

可以看到有一個post-commit.tmpl檔,這是一個範本檔,複製一份放在此目錄下,命名為post-commit,並將其使用者組設為www,並設置為可執行:

cp post-commit.tmpl post-commit

chown www:www post-commit

chmod +x post-commit

這樣就有了訪問www目錄的許可權。

裡面原有的代碼全部注釋掉.這裡可以執行shell命令,每次commit完成後都會調用此檔.

檔內容參考以下:

vi post-commit

#!/bin/sh

export LANG=zh_CN. UTF-8

REPOS="$1"

REV="$2"

SVN_PATH=/usr/bin/svn

WEB_PATH=/web/web/repos/public_html

LOG_PATH=/tmp/svn_update.log

#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache

echo "nnn##########開始提交" `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH

echo `whoami`,$REPOS,$REV >> $LOG_PATH

$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH

chown -R www:www $WEB_PATH

說明:

1、#!/bin/sh 說明是執行shell命令/*設定環境變數,如果沒有設定可能會出現update報錯*/

2、export LANG=zh_CN. UTF-8 是為了解決svn post commit 中文亂碼。

如果你是GBK編碼可能會提示:Error output could not be translated from the native locale to UTF-8

這是用戶端和伺服器編碼的問題,預設是utf-8,可嘗試設置export LANG=zh_CN. GBK或者export LANG=en_US. UTF-8

#執行更新操作

3、svn update –username 你版本庫的使用者名–password 使用者名的密碼svn://你的IP位址:埠/web/web/repos/public_html

4、chown -R www:www $WEB_PATH 更改資料夾屬主為適合Web Server的

裡面原有的代碼全部注釋掉.這裡可以執行shell命令,每次commit完成後都會調用此檔。

本文教程摘自wdlinux論壇 ,轉載請注明~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.