Ubuntu下Subversion伺服器的安裝配置

來源:互聯網
上載者:User

Ubuntu下Subversion伺服器的安裝配置 公司的 Subversion 伺服器由於電腦硬體原因,經常自動關機,因此計劃重新安裝一台伺服器。原來的 Subversion 伺服器是在 Windows XP 上通過 VisualSVN Server 架設的,現在考慮藉此機會將其遷移至 Linux 系統。Linux 發行版我選擇了 Ubuntu 12.04 LTS Server,安裝系統的過程中可選擇將 LAMP 一起裝上,這樣在系統安裝完成之後 Apache 就可以直接使用了。本文記錄如何在 Ubuntu 12.04 LTS 上設定 Subversion Server,關於 Subversion 倉庫資料移轉的內容再另行介紹。  www.2cto.com  本文涉及的範圍要通過 HTTP 協議訪問 Subversion 檔案倉庫,需要安裝並配置好 Web 服務器。Apache2 被證實可以很好的與 Subversion 一起工作。關於 Apache2 的安裝超出了本文的範圍(假設已經安裝好Apache2) ,儘管如此,本文還是會涉及如何配置 Apache2 使用 Subversion。 類似的,要通過 HTTPS 協議訪問 Subversion 檔案倉庫,您需要在您的 Apache2 中安裝並配置好數位憑證,這也不在本文的討論範圍之中。 安裝 Subversion幸運的,Subversion 已經包含在 main 倉庫中。所以,要安裝 Subversion,您只需要簡單的運行: $ sudo apt-get install subversion$ sudo apt-get install libapache2-svn伺服器配置通過上面的命令已經安裝了所需的軟體包。接下來將闡述如何建立 Subversion 倉庫以及如何設定項目的存取權限。 建立 Subversion 倉庫(Respository)許多位置都可以放置 Subversion 倉庫,其中兩個最常用的是:/usr/local/svn 以及 /home/svn。我們選擇把 Subversion 倉庫放在 /home/svn/repos,並且假設我們需要建立兩個倉庫 project1 和 project2。 通常的情況下,首先建立一個名為 “Subversion” 的使用者組,該組是 Subversion 倉庫所在的目錄的擁有者。  www.2cto.com   使用如下命令增加組,並且把使用者加到組裡: $ sudo addgroup subversion$ sudo usermod -G subversion -a www-datawww-data 是專門為 web server 運行而建立的使用者,系統中已經預先建立好了。 查看上面兩個命令的執行結果: $ cat /etc/group | grep subversionsubversion:x:1001:www-data執行如下命令建立倉庫目錄: $ sudo mkdir -p /home/svn/repos/project1$ sudo mkdir -p /home/svn/repos/project2下面命令用於建立 Subversion 倉庫: $ sudo svnadmin create /home/svn/repos/project1$ sudo svnadmin create /home/svn/repos/project2設定倉庫的使用者和組: $ sudo chown -R www-data:subversion /home/svn/repos/project1$ sudo chown -R www-data:subversion /home/svn/repos/project2訪問方式Subversion 倉庫可以通過多種不同的方式進行訪問——通過本地硬碟,或者通過各種網路通訊協定。無論如何,檔案倉庫的位置總是使用 URL 來表示。 下面是幾種不同的 URL 模式及其對應的存取方法:  www.2cto.com  file:/// —— 直接存取本地硬碟上檔案倉庫http:// —— 通過 WebDAV 協議訪問支援 Subversion 的 Apache2 Web 服務器https:// —— 類似 http://,支援 SSL 加密svn:// —— 通過內建協議訪問 svnserve 伺服器svn+ssh:// —— 類似 svn://,支援通過 SSH 通道通過 WebDAV 協議訪問(http://)WebDAV (Web-based Distributed Authoring and Versioning) 一種基於 HTTP 1.1協議的通訊協定.它擴充了HTTP 1.1,在GET、POST、HEAD等幾個HTTP標準方法以外添加了一些新的方法,使應用程式可直接對Web Server直接讀寫,並支援寫檔案鎖定(Locking)及解鎖(Unlock),還可以支援檔案的版本控制。 Apache mod\_dav\_svn 配置要通過 WebDAV 協議訪問 SVN 檔案倉庫,首先必須配置 Apache 2 Web 服務器。加入下面的程式碼片段到 /etc/apache2/mods-available/dav_svn.conf 檔案中: <Location /svn>    DAV svn    # Alternatively, use SVNParentPath if you have multiple repositories     # under a single directory    SVNParentPath /home/svn/repos    AuthType Basic    AuthName "Subversion repository"     # 指定基本使用者驗證的密碼檔案路徑    AuthUserFile /etc/subversion/dav_svn.passwd     # 指定檔案倉庫訪問的授權設定檔路徑    <IfModule mod_authz_svn.c>        AuthzSVNAccessFile /etc/subversion/dav_svn.authz    </IfModule>     #<LimitExcept GET PROPFIND OPTIONS REPORT>        Require valid-user    #</LimitExcept> </Location>重啟 Apache2 Web 服務器 $ sudo service apache2 restart密碼檔案 dav\_svn.passwd 的建立$ sudo htpasswd -c /etc/subversion/dav_svn.passwd user_name它會提示你輸入密碼,當您輸入了密碼,該使用者就建立了。“-c” 選項表示建立新的 /etc/subversion/dav_svn.passwd 檔案,所以 user_name 所指的使用者將是檔案中唯一的使用者。如果要添加其他使用者,則去掉“-c”選項即可: $ sudo htpasswd /etc/subversion/dav_svn.passwd other_user_name授權設定檔dav\_svn.authz首先需要載入mod_authz_svn.so 在目錄 /etc/apache2/mods-enabled 下建立軟連結到 ../mods-available/authz_svn.load $ cd /etc/apache2/mods-enabled$ sudo ln -s ../mods-available/authz_svn.load../mods-available/authz_svn.load檔案的內容為: LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so這裡我指定了三個組: design 組 和 test 組,design 組讀寫權限,test組只有讀的許可權。另外,設定一個管理員帳號 admin,管理員對所有項目有讀寫權限。  www.2cto.com  授權檔案 /etc/subversion/dav_svn.authz 的內容如下: [groups]design=user1,user2,user3test=user4,user5 [project1:/]admin=rw@design=rw@test=r [project2:/]admin=rw@design=rw@tester=r如果在Check in的時候遇到如下錯誤: Can’t open ‘/home/svn/myproject/db/txn-current-lock’: Permission denied這是因為檔案所屬的使用者和組不對造成的問題,可以重新對整個項目目錄設定使用者和組: $ sudo chown -R www-data:subversion /home/svn/repos/project1如果你不想將項目目錄的擁有者設定成 www-data 的話,比如你可能想設定為 root: $ sudo chown -R root:subversion /home/svn/repos/project1必須將 root 加入 subversion 組: $ sudo usermod -G subversion -a root還要設定組的屬性: $ sudo chmod -R g+rws /home/svn/repos/project1然後查看 txn-current-lock 檔案的許可權和使用者以及組資訊,應該類似於: $ ls -l /home/svn/myproject/db/txn-current-lock-rw-rwSr-- 1 root subversion  0  2009-06-18  15:33  txn-current-lock至此,Subversion 伺服器的配置已經完成了,藉助 SVN 用戶端軟體就可以通過 http:// 的方式訪問到上面配置的兩個檔案倉庫了。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.