天天看點

Ubuntu下SVN服務的搭建(apache2+svn)

1.apache2的安裝

sudo apt-get install apache2
           

2.安裝subversion及svn-apache連接配接庫

sudo apt-get install subversion
sudo apt-get install libapache2-svn
           

3.增加svn使用者組,用于管理svn,并加入到www-data的apache組

sudo addgroup subversion
sudo usermod -G subversion -a www-data
           

4.建立svn倉庫

一般可以将項目倉庫建立到/home/svn目錄

假設項目名為myproject,先建立空目錄

sudo mkdir /home/svn
cd /home/svn
   sudo mkdir myproject
sudo chown -R root:subversion myproject
sudo svnadmin create /home/svn/myproject
sudo chmod -R g+rws myproject
           

5.配置apache,用http協定通路svn服務

在安裝了libapache2-svn時會自動生成該檔案

sudo vi /etc/apache2/mods-available/dav_svn.conf

編輯dav_svn.conf配置檔案,内有注釋,可以去掉前面的#使語句生效,最後内容大概如下即可:

<Location/svn> #/svn表示            http://hostname/svn/myproject
DAV svn
SVNParentPath /home/svn #配置倉庫父目錄
AuthType Basic
AuthName "ToFishes Project Svn"
AuthUserFile /etc/subversion/passwd #svn使用者檔案
AuthzSVNAccessFile /etc/subversion/authz #授權通路檔案
Require valid-user
</Location>
           

svn使用者檔案/etc/apache2/dav_svn.passwd 和 授權通路檔案/etc/apache2/dav_svn.authz是不存在的,需要手動建立。

svn使用者檔案可以通過指令建立:

首次建立需要加-c選項,同時可以增加一個svn使用者

執行該指令會提示為新使用者user_name設定密碼

sudo htpasswd -c /etc/apache2/dav_svn.passwd user_name
           

以後添加新使用者,需要去掉-c選項,否則以前的使用者就被覆滅了

sudo htpasswd /etc/apache2/dav_svn.passwd new_name
           

使用者是可以添加了,同時需要管理授權,用于多個svn項目,劃分不同的使用者組:

用vi /etc/apache2/dav_svn.authz編輯授權檔案,無檔案則編輯并儲存後會自動建立,無需擔心。

授權檔案内容格式如下:

#使用者組指令
[groups]
#格式為  組名 = 使用者名1,使用者名2
group1 = user1, user2
group2 = user1, user3
#other groups...
#格式為  svn項目的倉庫名:對應目錄
[svn_repository_name:/]
#設定組的權限,r=read, w=write
@group1= rw
[svn_repository_name2:/web/css]
@group2= rw
           

6.修改完最後重新開機apache

sudo /etc/init.d/apache2 restart
           

完全解除安裝apache2

sudo apt-get remove apache2*
sudo apt-get update
sudo apt-get install apache2
           

繼續閱讀