在svn create之后,比如創(chuàng)建了一個myproject項目,myproject目錄下會生成許多文件,配置文件位于myproject/conf下。需要改的地方有svnserve.conf, passwd, authz。
首先,svnserve.conf把以下行的注釋去掉。
anon-access = read (匿名用戶只讀,也可以設成none,不可訪問)
auth-access = write
password-db = passwd (svn密碼文件,如果有多個項目,建議將該文件放到公共位置)
authz-db = authz (目錄權(quán)限文件,建議同上)
real = My First Repository (認證域,相同認證域下的項目使用相同的passwd和authz,暫時不用理會)
接下來,passwd文件中添加明文的用戶名/密碼。authz文件中設置別名和用戶組,并針對不同目錄對不同的用戶或組分配權(quán)限(r,w,rw)。設置權(quán)限時,用戶組前面要加@,別名前面要加&。
這樣配置好后,就可以通過svn://來訪問了。
如果要想通過Apache來訪問svn,還需要進行下面的配置。
假定Apache服務器已經(jīng)安裝好。
1. 創(chuàng)建一個svn用戶組,將www-data(apache的默認用戶名)加入到svn組中。
2. 將資源庫的owner設成www-data,group設成svn。下面三條用于修改權(quán)限
sudo chown -R www-data myproject
sudo chgrp -R svn myproject
sudo chmod -R g+rwx myproject 這條命令允許用戶對版本庫進行讀寫操作,即可以更新,可以提交
3. 確認libapache2-svn已經(jīng)安裝,/etc/apache2/mods-enabled下面有dav.load,dav_svn.load和dav_svn.conf三個文件。
4. 修改dav_svn.conf文件。去掉下面行的注釋。
<Location /svn> (apache下的位置)
DAV svn
SVNPath /home/svn/myproject (指明資源庫的路徑)
或
SVNParentPath /home/svn (如果有多個庫,使用該選項)
SVNListParentPath on (打開這個選項可以列出ParentPath下面的所有庫)
AuthType Basic (認證類型為基本認證 )
AuthName "Subversion Repository" (認證名稱,將在IE界面彈出一個對話框,其標題)
AuthUserFile /etc/apache2/dav_svn.passwd (認證密碼文件)
# AuthzSVNAcessFile /etc/apache2/dav_svn.authz (目錄權(quán)限文件)
Require valid-user (要求驗證用戶,即不能匿名訪問)
</Location>
5. 通過sudo htpasswd -c /etc/apache2/dav_svn.passwd abc創(chuàng)建用戶abc并按照提示設置密碼,網(wǎng)頁認證的時候使用該用戶名和密碼登錄。后面再添加用戶的時候去掉-c選項。
配好以后就可以通過Http頁面來訪問SVN了。
聯(lián)系客服