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