阿里雲ECS ubuntu 14.04 搭建svn以及使用實踐記錄
1. 安裝SVN
apt-get install subversion
2. 建立版本庫
2.1先建立SVN版本庫目錄
mkdir /home/svn 理論上是放到任何地方都可以的,也可以選擇放到/var/www/
/home/svn 所有版本庫的目錄
mkdir /home/svn/project1 專案1的版本庫目錄
mkdir /home/svn/project2 專案2的版本庫目錄
2.2 建立SVN專案
svnadmin create /home/svn/project1
svnadmin create /home/svn/project2
3. 為了便於管理,將所有版本庫的密碼和許可權設定在同一個檔案下面,操作步驟如下:
3.1取出project1下面conf資料夾下的authz和passwd兩個檔案到svn根目錄
3.2修改每個版本庫目錄conf資料夾下面的svnserve.conf檔案, 將
# anon-access =read ,#auth-access =write ,# password-db =passwd,#authz-db = authz 修改為:
anon-access =none ,auth-access=write,password-db =../../passwd,authz-db =../../authz
(password-db = ../../passwd,authz-db = ../../authz代表相對路徑而非絕對路徑)
所有行都需要頂格
4. 新增角色:
開啟svn目錄下的passwd檔案,建立方法是在[user]下面新增 username = passwd,格式的使用者名稱密碼
5. 設定許可權:
開啟svn目錄下的authz檔案,在[group]下面加上
指admin使用者屬於 admin_group 組 dev1使用者屬於p1組 dev2使用者屬於p2組
svn根目錄下 admin_group,p1,p2組給讀寫許可權
因為project1 與project2 都是用同一個authz檔案所以這裡的根目錄是指/project1 也是指 /project2
6. 啟動svn服務
svnserve -d -r /home/svn
可以通過命令 netstat -antp |grep svnserve 監聽3690埠
這裡有一個坑,這些埠(包括80、3306等)阿里雲的ECS預設都是關閉的,都需要去例項那裡開啟一個埠准入策略
如果想關閉服務,用命令 pkillsvnserve
7. 建立自動更新鉤子
7.1在伺服器相應的網站目錄checkout 一個svn版本,讓程式碼與svn倉庫建立連結
cd /var/www/html
svn checkout svn://你的svn地址/專案
然後系統會要求輸入 root 賬戶的密碼
之後要輸入 對應的svn使用者密碼
複製project1/hooks/post-commit.temp檔案為post-commit
#!/bin/sh
REPOS="$1"
REV="$2"
svn up /var/www/project1/ --username=admin--password=admin
在post-commoit檔案裡面寫入以上藍色程式碼
大功告成!!!!!!!!!!!!!!!!!