使用的是阿里雲服務器,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權限便可)