Ubuntu Server搭建svn服務以及遷移方法

採用apache+svn,http訪問方式。

先確定安裝了apache,沒有安裝則用以下命令:

sudo apt-get install apache2
然後安裝subversion及svn-apache連接庫:

sudo apt-get install subversion
sudo apt-get install libapache2-svn
增加svn用戶組,用於管理svn,並加入到www-data的apache組:

sudo addgroup subversion
sudo usermod -G subversion -a www-data
然後可以創建svn項目倉庫了:

# 一般可以將項目倉庫建立到/home/svn目錄
# 假設項目名爲myproject,先建立空目錄
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
#創建爲svn項目,使用以下命令
$ sudo svnadmin create /home/svn/myproject
# 然後才賦予組成員對所有新加入文件倉庫的文件擁有相應的權限:
# 如果命令順序搞錯,可能會報錯,請參照官方wiki
$ sudo chmod -R g+rws myproject
最後是配置apache,用http協議訪問svn服務:

# 在安裝了libapache2-svn時會自動生成該文件
$ sudo vim /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/apache2/dav_svn.passwd #svn用戶文件
AuthzSVNAccessFile /etc/apache2/dav_svn.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/subversion/passwd user_name
#以後添加新用戶,需要去掉-c選項,否則以前的用戶就被覆滅了
sudo htpasswd /etc/subversion/passwd new_name
用戶是可以添加了,同時需要管理授權,用於多個svn項目,劃分不同的用戶組:

用vim /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
改完最後重啓apache : sudo /etc/init.d/apache2 restart。這樣工作就全部完成了。

其中訪問地址是什麼呢,只要當前服務器已經綁定了一個域名,並且在apache中啓用了此域名的虛擬主機。

比如能正常訪問 http://www.linuxidc.com/, 那麼svn項目的訪問地址就是 http://www.linuxidc.com/svn/項目名。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章