Ubuntu(Mint)下搭建SVN伺服器

來源:互聯網
上載者:User

Ubuntu(Mint)下搭建SVN伺服器 1.安裝Subversion1  www.2cto.com  sudo apt-get install subversion2.建立倉庫假定我們倉庫的父目錄為/home/svn 12cd /home/svnsudo svnadmin create /home/svn/test可以看到/home/svn目錄下面有一個test檔案夾,裡面有conf,db,format,hooks,locks,README.txt幾個檔案 3.啟動svn伺服器1sudo svnserve -d -r /home/svn4.測試svn伺服器12svn co file://localhost/home/svn/test輸出:Checked out revision 0說明安裝成功 如果要通過瀏覽器訪問的,則需要與apache配合: 1.安裝apache如果沒有安裝apache,需要先安裝apache以及libapache2-svn 1sudo apt-get install apache libapache2-svn2.整合SVN修改/etc/apache2/mods-available/dav_svn.conf <Location /svn>    DAV svn    SVNParentPath /home/svn    AuthType Basic    AuthName "Subversion Repository"    AuthUserFile /etc/subversion/dav_svn.passwd    AuthzSVNAccessFile /etc/subversion/dav_svn.authz    Require valid-user</Location>說明:1.SVNParentPath表示的所有庫的父級目錄,SVNParentPath與SVNPath只能啟用一個。SVNPath只能建立一個倉庫,SVNParentPath則可以建立多個,由於通常不會只有一個倉庫,所以通常都會選擇SVNParentPath2.AuthUserFile 是svn的使用者設定檔,位置可以自訂,檔案也需要自己建立,不過得保證apache有存取權限3.AuthzSVNAccessFile 是svn的許可權控制檔案,其他同AuthUserFile 3.添加SVN使用者1sudo htpasswd -c /etc/subversion2/dav_svn.passwd username斷行符號之後需要輸入兩次密碼。據說 -c 參數建立檔案會覆蓋原有的資訊,但是經過測試,並沒有覆蓋原有的使用者資訊,所以,執行 12sudo htpasswd -c /etc/subversion2/dav_svn.passwd user1sudo htpasswd -c /etc/subversion2/dav_svn.passwd user2dav_svn.passwd檔案中依舊會有user1和user2兩個使用者資訊,沒有衝突。另外,/etc/subversion2/dav_svn.passwd檔案需要與第2步中自訂的檔案位置一致完成之後可以看到dav_svn.passwd中有類似 1xiao:$apr1$wq1l1SCM$lAgKYtQJUzpPZPgvQXTnX1的片段,xiao是使用者名稱,後面的是加密後的密碼 4.修改SVN存取權限編輯 /etc/apache2/dav_svn.authz如果想開放所有許可權,那麼可以直接 12[/]* = rw表示使用者都有讀寫權限 5.重啟apache1sudo /etc/init.d/apache2 restart訪問http://127.0.0.1/svn/test/可查看結果 補充說明: 1.整合SVN出錯出現錯誤: 12Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configurationAction 'configtest' failed.原因:沒有匯入auth模組解決方案:在 1/etc/apache2/mods-enabled/dav_svn.load中加入 1LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so2.訪問倉庫列表如果希望訪問所有的倉庫列表,可以修改/etc/apache2/mods-available/dav_svn.conf如下: <Location /svn/>    DAV svn    SVNParentPath /home/svn    SVNListParentPath On    AuthType Basic    AuthName "Subversion Repository"    AuthUserFile /etc/subversion/dav_svn.passwd    AuthzSVNAccessFile /etc/subversion/dav_svn.authz    Require valid-user</Location>注意上面的變化,%lt;Location /svn/>添加了尾部斜線,SVNListParentPath On是新添加的。重啟apache後訪問http://127.0.0.1/svn/(結尾有個’/')可以看到結果 3.許可權控制說明/etc/apache2/dav_svn.authz 許可權控制的一個樣本 [groups] #用來分組使用者group1 = xiao, xegroup2 = user1, user2 [test:/] #倉庫名稱,[/]表示所有倉庫@group1 = rw #表示group1組的使用者(xiao, xe)對test具有讀寫權限@group2 = r  #表示group2組的使用者(user1, user2)對test只具有讀許可權,沒有寫的許可權* = #表示所有使用者都沒有許可權,即既不能讀,也不能寫 [test2:/]* = rw #表示所有使用者都具有讀寫權限4.許可權錯誤出現Can’t open directory ‘/home/svn’: Permission denied或者403 forbidden錯誤的話,表示apache(通常賬戶是www-data)沒有許可權文檔到svn所在目錄的許可權,此時需要檢查/home/svn及其子檔案夾的許可權,比如 1sudo chown -R www-data /home/svn然後再訪問http://127.0.0.1/svn/test/查看結果 5.重啟apache的時候如果出現Permission denied: make_sock: could not bind to address 0.0.0.0:80等字樣,記得加sudo

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.