Linux 部署 SVN 並同步 web 項目

使用的是阿里雲服務器,Linux 版本 centos7.2。html

1、Linux 安裝 SVN,步驟以下:shell

一、yum install subversioncentos

二、輸入 rpm -ql subversion 查看安裝位置,以下圖:安全

三、建立svn版本庫目錄 服務器

 mkdir -p /var/svn/svnrepostcp

四、建立版本庫svn

svnadmin create /var/svn/svnrepospost

執行了這個命令以後會在 /var/svn/svnrepos 目錄下生成以下這些文件阿里雲

五、進入 conf 目錄(該svn版本庫配置文件)編碼

authz 文件是權限控制文件

passwd 是賬號密碼文件

svnserve.conf SVN 服務配置文件

六、設置賬號密碼

vi passwd

在 [users] 塊中添加用戶和密碼,格式:賬號=密碼,如 test=test

七、設置權限

vi authz

在末尾添加以下代碼:

[/]

test=rw

意思是版本庫的根目錄 test 用戶對其有讀寫權限

八、修改 svnserve.conf 文件

vi svnserve.conf

打開下面的幾個註釋:

anon-access = read #匿名用戶可讀

auth-access = write #受權用戶可寫

password-db = passwd #使用哪一個文件做爲帳號文件

authz-db = authz #使用哪一個文件做爲權限文件

realm = /var/svn/svnrepos # 認證空間名,版本庫所在目錄

九、啓動svn版本庫

svnserve -d -r /var/svn/svnrepos

2、win7 系統下鏈接 SVN

一、安裝 SVN 客戶端,下載地址:

https://tortoisesvn.net/downloads.html

二、Linux 服務器防火牆開啓 3690 端口(SVN 默認端口),阿里雲還需設置安全組

添加

firewall-cmd --zone=public --add-port=3690/tcp --permanent    (--permanent永久生效,沒有此參數重啓後失效)

從新載入

firewall-cmd --reload

三、桌面右擊選擇,SVN Checkout...

在第一欄中輸入服務段地址:svn:// ip :3690 /svnrepos(IP 地址加端口號+倉庫目錄)

第二欄填的是運行出來到本地的目錄

選擇 OK 以後填入用戶名、密碼便可

3、 部署項目到 SVN 上,實現本地更新同步到服務器 項目

一、 首先在 win 客戶端的tortoiseSVN先創建好項目文件目錄,好比 resume

二、進入 SVN 項目倉庫鉤子所在的目錄:

cd /var/svn/svnrepos/hooks/

而後複製備份 post-commit 文件:

cp post-commit.tmpl post-commit

三、假設個人服務器項目文件放在 /var/www/html/

爲了可以讓SVN倉庫同步將項目更新過來,那麼首先須要從倉庫checkout出項目到該目錄下面,

分別執行 shell 命令:

   cd /var/www/html

   svn co svn://localhost/svnrepos/resume --username test --password test

此時在 html 目錄下你將會看到你 checkout 出來的項目了,接下來要開始寫觸發腳本,實如今win本地上傳更新你的項目文件的同時,同步更新倉庫內的文件。

在 /var/svn/svnrepos/hooks 目錄下打開 post-commit 文件,屏蔽裏面全部的未屏蔽代碼,在文件最後寫入:

export LANG=zh_CN.UTF-8 (設置編碼,防止報錯)

/usr/bin/svn update --username test --password test /var/www/html/resume(同步更新)

(若出現:post-commit錯誤代碼255,應該是腳本權限不對,賦予777權限便可)

相關文章
相關標籤/搜索