ubuntu10.10 搭建svn服務器 配合Apache2實現目錄訪問權限控制

1.安裝
# sudo apt-get install subversion subversion-tools
# sudo apt-get install apache2 libapache2-svn

2.增加svn用戶組,用於管理svn,並加入到www-data的apache組:
# sudo addgroup subversion
# sudo usermod -G subversion -a www-data

3.然後可以創建svn項目倉庫了:

# 一般可以將項目倉庫建立到/home/svn目錄
# 假設項目名爲myproject,先建立空目錄
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
 
#創建爲svn項目,使用以下命令
$ sudo svnadmin create /home/svn/myproject
# 然後才賦予組成員對所有新加入文件倉庫的文件擁有相應的權限:
# 如果命令順序搞錯,可能會報錯,請參照官方wiki
$ sudo chmod -R g+rws myproject


4.最後是配置apache2,用http協議訪問svn服務:

# 在安裝了libapache2-svn時會自動生成該文件
$ sudo vi /etc/apache2/mods-available/dav_svn.conf
# 編輯dav_svn.conf配置文件,內有註釋,可以去掉前面的#使語句生效,最後內容大概如下即可:
<Location /svn>  #/svn表示http://hostname/svn/myproject
DAV svn
SVNParentPath /home/svn #配置倉庫父目錄
AuthType Basic
AuthName "welcome to subversion repository"
AuthUserFile /etc/subversion/dav_svn.passwd  #svn用戶文件
AuthzSVNAccessFile /etc/subversion/dav_svn.authz #授權訪問文件
Require valid-user
</Location>

5.創建svn用戶文件/etc/subversion/passwd 和 授權訪問文件/etc/subversion/authz:

創建svn用戶文件:

#首次創建需要加-c選項,同時可以增加一個svn用戶
#執行該命令會提示爲新用戶user_name設置密碼
sudo htpasswd -c /etc/subversion/passwd user_name
 
#以後添加新用戶,需要去掉-c選項,否則以前的用戶就被覆滅了
sudo htpasswd /etc/subversion/passwd new_name
創建svn授權訪問文件(用於多個svn項目,劃分不同的用戶組):

#用戶組指令
[groups]
#格式爲  組名 = 用戶名1,用戶名2
group1 = user1, user2
group2 = user1, user3
#other groups...
#格式爲  svn項目的倉庫名:對應目錄
[svn_repository_name:/]
#設置組的權限,r=read, w=write
@group1 = rw
[svn_repository_name2:/web/css]
@group2 = rw

6.改完最後重啓apache:#sudo /etc/init.d/apache2 restart。這樣工作就全部完成了。

參考http://cssor.com/ubuntu-server-svn.html


創建佈局
可以在客戶端使用svn mkdir在版本庫中逐個創建訴需要的目錄,更快的方式是使用svn import命令:首先在本地創建一個臨時目錄,並按照設計好的佈局在其下面創建子目錄,然後通過svn import一次性提交整個佈局到版本庫中, 然後刪除這個臨時目錄:
   $ mkdir tmp
   $ mkdir tmp/project_A/trunk
   $ mkdir tmp/project_A/branches
   $ mkdir tmp/project_A/tags
   $ cd tmp
   $ svn import  .   file:///home/svn/project_A  -m "Initial repositorylayout" (必須標註修改信息)
   $ cd ..
   $ rm -fr tmp
然後可以用svn list確認導入的結果是否正確:
   $ svn list --verbose file:///home/svn/project_A
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章