2010-12-08 11:42

[Ubuntu] setup SVN base Apache note

# 安裝 Apache & SVN
apt-get install apache2 apache2.2-common apache2-utils apache2-doc libapache2-svn subversion

# 建立 Repositorys 的目錄
mkdir /var/lib/svn

# 建立三個 Repository
svnadmin create /var/lib/svn/repo1
svnadmin create /var/lib/svn/repo2
svnadmin create /var/lib/svn/repo3


# 變更 Repositorys 的權限給 Apache
chown -R www-data:www-data /var/lib/svn

# 啟用 Apache 中的 dav_svn
a2enmod dav_svn

# 設定 SVN 使用者帳號
htpasswd -c /etc/apache2/dav_svn.passwd user1
htpasswd /etc/apache2/dav_svn.passwd user2
htpasswd /etc/apache2/dav_svn.passwd user3


# 編輯 SVN 配置檔
vim /etc/apache2/mods-available/dav_svn.conf
  1. <Location /svn> 
  2.  DAV svn 
  3.  SVNParentPath /var/lib/svn 
  4.  AuthType Basic 
  5.  AuthName "Subversion Repository" 
  6.  AuthUserFile /etc/apache2/dav_svn.passwd 
  7.  AuthzSVNAccessFile /etc/apache2/dav_svn.authz 
  8.  <LimitExcept GET PROPFIND OPTIONS REPORT> 
  9.    Require valid-user 
  10.  </LimitExcept> 
  11. </Location> 

# 編輯 SVN 資源權限
vim /etc/apache2/dav_svn.authz
  1. # 設定使用者群組 
  2. [groups] 
  3. group1 = user1,user2 
  4. group2 = user1,user3 
  5.  
  6.  
  7. # 設定全域皆可讀取 
  8. [/] 
  9. * = r 
  10.  
  11. # 指定 repo1 只有 group1 可以寫入 
  12. [repo1:/] 
  13. @group1 = rw 
  14.  
  15. # 指定 repo1 中 blog 這個目錄只有 uesr2 可以寫入 
  16. [repo1:/blog/] 
  17. uesr2 = rw 
  18.  
  19.  
  20. # 指定 repo2 只有 group2 可以寫入 
  21. [repo2:/] 
  22. @group2 = rw 
  23.  
  24. # 指定 repo3 只有 user1 可以寫入 
  25. [repo3:/] 
  26. user1 = rw 

# 重新啟動 Apache
/etc/init.d/apache2 restart


參考來源:
Ubuntu - 安裝 SVN (Subversion Server)
Subversion用户,权限管理

0 回應: