linux---SVN服務器的搭建與配置
一、svn簡介
Subversion(SVN) 是一個開源的版本控制系統, 也就是說 Subversion 管理着隨時間改變的數據。這些數據放置在一箇中央資料檔案庫 (repository) 中。 這個檔案庫很像一個普通的文件服務器,不過它會記住每一次文件的變動。這樣你就可以把檔案恢復到舊的版本, 或是瀏覽文件的變動歷史。
二、svn安裝
1.yum install subversion
安裝成功後,配置SVN服務器端的版本庫
2.一般在/usr/local下建立SVN文件夾並賦予權限777
chmod -R 777 /usr/local/svn
3.創建一個SVN版本倉庫dudj(此名稱可以任意定義)
svnadmin create /usr/local/svn/dudj
三、svn配置
(1)svnserve.conf(配置版本庫信息和用戶文件和用戶密碼文件的路徑、版本庫路徑)
//這四行,前面的#號和空格去掉(注意去掉#要頂格寫,不要留有多餘空格),變成
anon-access = none //匿名訪問,改成none
auth-access = write
password-db = passwd
realm = dudj //改成自己的版本庫名稱
(2)authz(創建SVN組和組用戶的權限)
[group]
dudj=first,second//創建一個dudj的組,並指定兩個用戶first和second
//制定根目錄下的權限
[/]
@dudj= rw//dudj組用戶權限爲讀寫
*=r //其他用戶只有讀權限
(3)passwd(給用戶設置密碼)
[users]
first=first
second=second
四、svn啓動與關閉
啓動svn
設置開機自啓
vi /etc/rc.local
/usr/bin/svnserve -d -r /usr/local/svn/
關閉svn
查找所有svn啓動的進程
ps aux |grep 3690
kill -9 進程號
五、svn自動更新到指定的 目錄
有時候,svn的目錄並不是虛擬主機的目錄,當svn文件上傳以後,只是svn目錄的文件發生改變,而虛擬主機網站並不發生改變,svn早就考慮到了這個問題。
所以svn有一個hooks,也就是鉤子的概念,當svn目錄發生的時候他會觸發。例如我的虛擬主機目錄是/usr/local/nginx/html,svn的目錄是/test/svn2/p1/.當svn上傳後,他會自動觸發/test/svn2/p1/hooks/post-commit這個文件。
1.進入/test/svn2/p1/hooks
2.新建文件post-commit
3.寫入代碼如圖
EPOS="$1"
REV="$2"
echo `date`,`whoami`,$REPOS,$REV >> /usr/local/svn/dudj/hooks/svn_hook.log #記錄時間
#!/bin/sh
export LANG=zh_CN.utf-8
cd /usr/local/nginx/html
svn checkout file:///usr/local/svn/dudj/