1. 程式人生 > >ubuntu SVN 建立專案 以及給專案增加使用者訪問許可權

ubuntu SVN 建立專案 以及給專案增加使用者訪問許可權

(一)的做法只是為了給    把這個版本倉庫目錄授權給apache讀寫(因為:svn不依賴apache. 配置apache,主要時為了線上瀏覽程式碼)
(一):[email protected]:/etc/apache2/mods-enabled#cat dav_svn.conf
apache啟動後,一切正常。訪問:http://localhost/svn。登陸,許可權驗證正常,但是報出:403 Forbidden
You don't have permission to access /svn on this server.
用http://localhost/svn/repository訪問 OK。
找了一下午的問題,為什麼不能/svn的形式訪問。把SVNParentPath的路徑指向具體的repository(庫),也無效。
繼續搜尋,原來,此處的SVNParentPath是支援多庫型別,訪問的時候只能
http://localhost/svn/repository的方式訪問。
如果希望指向單一庫,則需要配置根目錄。如果本身就只有一個庫的情況下,就大可不用SVNParentPath。
直接用SVNPath即可。
這時在位址列中輸入http://localhost/svn。ok。
(二):對svn 版本倉庫目錄 的理解  
通過命令 svnadmin create /home/svn/repos
              svnadmin create /home/svn/repository  
本來/home/svn/repository  這個目錄下什麼都沒有,執行下面的命令之後再去看一下,多出一些檔案和資料夾,我們需要操作的是conf這個資料夾,這個資料夾下有一個檔案,叫做passwd,用來存放使用者名稱和密碼。  (這裡使用的是多個版本倉庫目錄repos和repository)為了方便管理不單獨在repos和repository各自的目錄下的conf 配置使用者  而是使用了 跟repos和repository同級中的authz.conf 和passwd.conf統一管理repos和repository的訪問許可權




然後把這個版本倉庫目錄授權給apache讀寫:
sudo chown -R www-data:www-data /目錄地址
然後來到開啟apache配置檔案:
sudo gedit /etc/apache2/mods-available/dav_svn.conf
加入如下內容:
注意:a.這裡使用了SVNParentPath 它可以管理多個版本倉庫目錄
<Location /svn>
    DAV svn
    SVNParentPath /home/svn
    AuthType Basic
    AuthName "uniteque subversion repository"
    AuthUserFile /home/svn/passwd.conf
    AuthzSVNAccessFile /home/svn/authz.conf
    Require valid-user
</Location>


b.如果希望指向單一庫,則需要配置根目錄。如果本身就只有一個庫的情況下,就大可不用SVNParentPath。
<Location /project>
DAV svn
SVNPath /home/svn/project
AuthType Basic
AuthName “myproject subversion repository”
AuthUserFile /home/svn/project/conf/passwd
Require valid-user
</Location>