apt-get install apache2
apt-get install subvesion
apt-get install libapache2-svn
新建一個目錄作為svn的倉儲目錄
mkdir /home/svn;
新建一個目錄作為項目目錄。
mkdir /home/svn/mysite
svnadmin create /home/svn/myiste,使用SVN自帶的工具svnadmin create創建SVN項目倉庫,這個時候大家去/home/svn/mysite下去看就可以看到很多文件,這就說明這個項目倉庫已經真正地建好了.
最后,我們需要配置Apache,使得我們可以以http的協議方式訪問SVN服務。事實上,在我們安裝libapache2-svn的時候,已經生成了一個路徑為/etc/apache2/mods-available/dav_svn.conf的文件,接下來我們只需要對其進行些許的修改就可以完成對Apache的配置。打開dav_svn.conf這個配置文件,我們可以看見文件內有很多前面帶#的注釋語句,我們可以去掉一些#以完成我們的配置,最終dav_svn.conf這個配置文件的內容應該如下所示:
sudo vi /etc/apache2/mods-available/dav_svn.conf
<Location /svn>
DAV svn
SVNParentPath /home/svn #項目倉庫的父目錄
AuthType Basic
AuthName "ToFishes Project Svn"
AuthUserFile /etc/subversion/passwd #SVN的用戶文件
AuthzSVNAcessFile /etc/subversion/authz #授權訪問文件
Require Valid-user
</Location>
在上面的配置文件中我們設置了SVN的用戶文件和授權訪問文件,但實際上這兩個文件並不存在,需要自己手動創建。創建命令如下:
htpasswd -c /etc/subversion/passwd svntest,因為是首次創建,所以需要添加-c選項,同時可以增加一個SVN用戶,這里我們將用戶svntest添加到SVN用戶中。我們執行這條命令后會提示我們輸入用戶的密碼以及再次輸入密碼。
如果在創建SVN用戶文件之后我們還想再添加SVN用戶的話,我們就不需要添加-c選項了,如果添加-c選項,之前已經添加的用戶就會消失,相當於從新開始了。只添加用戶命令如下:
htpasswd /etc/subversion/passwd new_svntest
上面我們添加完了用戶,但是還要授權這些用戶的權限,如該用戶是具有讀權限,還是寫權限,還是讀寫權限等等。為了使得一個用戶對於SVN的多個項目具有不同的權限控制,我們僅為用戶組設置具體的讀寫權限,如果一個用戶期望獲得一個項目的相關權限,我們可以將這個用戶直接添加到具有相應權限的組中去,具體命令如下:
sudo vi /etc/subversion/authz
在打開編輯授權文件之后編輯其內容如下:
#用戶組指令
[groups]
svn = svntest,將用戶svntest添加到用戶組svn
#其他組
[mysite:/]
@svn = rw,為用戶組svn添加讀寫權限
完成以上設置之后,我們只需重啟SVN就可以了,重啟命令如下:
sudo /etc/init.d/apache2 restart。
重啟時報錯:
Syntax error on line 61 of /etc/apache2/mods-enabled/dav_svn.conf:
Invalid command 'AuthzSVNAccessFile', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
...fail!
查一下后發現是一個so文件沒加,在/etc/apache2/mods-available/dav_svn.load最后添加一行:
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so,apache服務器成功重啟。
重啟之后我們在瀏覽器中鍵入SVN項目的訪問地址就可以查看項目中的內容了,假定我們配置服務器的IP地址為192.168.1.100,那么我們在瀏覽器中可鍵入http://192.169.1.100/svn/mysite/進行訪問。
以上我們介紹的是SVN服務器端的安裝和配置,在客戶端可以安裝一個SVN的客戶端軟件,如TortoiseSVN這個軟件。TortoiseSVN的安裝使用都非常方便,但是在第一次使用的時候可能會遇到一些小問題,如在TortoiseSVN Commit時報出錯誤:
svn: Can't open file '/home/svn/db/txn-current-lock':Permission denied
Error1:Can't open 'db/txn-current-lock':Permission denied。
原因是svn的根目錄目前只屬於創建者,需要給用戶添加權限,消除這種錯誤的解決方法是給SVN目錄添加讀寫權限,命令如下:
sudo chmod -R o+rw /home/svn