SVN入門介紹服務器端如何配置
上節(jié)我們講到SVN入門介紹中客戶端的使用,本節(jié)向大家講解一下SVN入門中服務器端的配置,在這里和大家分享一下,希望通過本節(jié)的學習,大家能夠?qū)VN服務器端的配置方法有所了解。
二、服務器端的配置
Web服務器部署可以有三種選擇,配置由簡單到復雜排列為
·svnserve
·svnserveoverSSH
·Apache+mod_dav_svn模塊
下面從最簡單的入手,介紹svnserve。
[更新]Windows下服務器端的配置可以使用VisualSVNServer進行傻瓜化安裝。
官方網(wǎng)站:http://www.visualsvn.com/
參考鏈接:VisualSVN系列介紹(有詳細的安裝過程介紹,這里就不轉(zhuǎn)述了)
2.1&2.2配置svnserve
svnserve是一個輕型的服務器,可以同客戶端通過在TCP/IP基礎上的自定義有狀態(tài)協(xié)議通訊,客戶端通過使用開頭為svn://或者svn+ssh://svnserve的URL來訪問一個svnserve服務器。SVN入門介紹Linux下svnserver如何配置。
2.1Linux下的svnserve配置
2.1.0同樣地,使用命令$sudoapt-getinstallsubversion
2.1.1svnserve作為獨立守護進程,監(jiān)聽請求
$svnserve-d
$#svnserveisnowrunning,listeningonport3690
——可以使用--listen-port=[端口號]來指定端口,或者--listen-host=[主機名]來指定主機名
假定已經(jīng)建立一個版本庫位于/usr/local/repositories/project路徑(版本庫的建立稍后提及),此時客戶端可以使用svn://[主機]/usr/local/repositories/project來進行訪問
——可以使用-r選項來限制只輸出指定路徑下的版本庫,從而使客戶端訪問更為簡潔:
$svnserve-d-r/usr/local/repositories
則客戶端只要使用svn://[主機]/project就可以訪問
2.1.2通過inetd使用svnserve
$svnserve-i
——此時svnserve會嘗試使用自定義協(xié)議通過stdin和stdout來與subversion客戶端通話,默認端口為3690??梢栽?etc/services添加如下幾行:
svn3690/tcp#subversion
svn3690/udp#subversion
——如果是使用經(jīng)典的類Unix的inetd守護進程,可以在/etc/inetd.conf添加如下行,則如果有客戶連接來到端口3690,inetd會產(chǎn)生一個svnserve進程來做服務
svnstreamtcpnowaitsvnowner/usr/bin/svnservesvnserve-i。下面看一下SVN入門介紹中如何設置svnserve的內(nèi)置認證。
2.1.3設置svnserve的內(nèi)置認證
編輯版本庫目錄的conf/svnserve.conf文件:
1)設置匿名訪問
[general]
anon-access=none#無權(quán)限
anon-access=read#只讀
anon-access=write#打開匿名的寫訪問,但這樣很危險,不能控制誰來修改版本庫
2)使用用戶和密碼
2.1)定義保存用戶名和密碼的文件和一個認證域
[general]
password-db=<userfile>#指出保存用戶和密碼列表的文件,可以是絕對或相對路徑
realm=examplerealm#定義認證域
anon-access=read
auth-access=write
2.2)然后在userfile文件中指明用戶名和密碼:(格式為“用戶名=密碼”)
[users]
harry=foopassword
sall=barpassword。下面SVN入門介紹一下Windows下的svnserve配置。
2.2Windows下的svnserve配置
2.2.0安裝svnserve
1)從http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91得到***版本的Subversion
(如果之前已經(jīng)安裝了subversion,svnserve已經(jīng)在服務器上運行,需要先停止服務)
2)安裝subversion,然后進入subversion的安裝目錄,找到bin目錄下的文件svnserve.exe,int13_svn.dll,libapr.dll,libapriconv.dll,libapriutil.dll,libdb*.dll,libeay32.dll和ssleay32.dll,將它們復制到服務器目錄下(如C:\svnserve)。
2.2.1以守護方式運行svnserve
在命令行窗口輸入svnserve.exe--daemon,則svnserve將會在端口3690等待請求,--daemon選項告訴svnserve以守護進程方式運行,這樣在手動終止之前不會退出。這種方式的不便之處是需要保持命令行窗口不關(guān)閉。
2.2.2svnserve作為windows服務
svnserve作為windows服務時,在后臺運行,可以在啟動時自動執(zhí)行,并且可以使用同其他windows服務一致的管理界面啟動和停止服務。
需要使用命令行工具sc.exe定義新的服務(createsvnserve),在windows啟動時指明svnserve的調(diào)用:
C:\>sccreatesvnserve
binpath="\"c:\svnserve\svnserve.exe\"--service--rootc:\repos"
displayname="Subversion"
depend=tcpip
start=auto
——注意為了回避目錄名中的空格等字符,將整個binpath值放在雙引號中;另外,sc的命令行很特殊。在key=value對中,key與=之間不能有空格,但是在value之前,必須有空格。
定義了服務之后,就可以使用GUI工具(如服務管理面板)進行停止、啟動和查詢,也可以通過命令行的方式進行:
C:\>netstopsvn
C:\>netstartsvn
C:\>scdeletesvn(需要確定先停止了服務)
2.2.3設置svnserve的內(nèi)置認證
同上Linux配置文件即可。SVN入門介紹Windows下如何設置svnserver內(nèi)置認證。
2.3&2.4配置svnserve+ssh
2.3Linux下的svnserve+ssh配置
2.3.0介紹與安裝ssh
通過此方法,svnserve不會作為守護進程啟動,而是SSH來啟動svnserve,以SSH授權(quán)用戶進行。
$sudoapt-getinstallssh
2.3.1創(chuàng)建帳戶
$sudoadduser<username>#為參與項目開發(fā)的成員建立用戶帳戶
$sudoaddgroup<groupname>#建立用戶組
$sudoaddgroup<username><groupname>#將用戶帳戶添加進用戶組
2.3.2為成員生成密鑰對
首先必須切換為<username>的用戶登陸Linux:
$sudo<username>
$(提示輸入密碼)
$cd~/
$whoami
<username>$ssh-kegen-b1024-tdsa-N<passphrase>-f<filename>#使用DSA加密,也可以改為RSA加密
——這時產(chǎn)生兩個文件:私鑰<username>key和公鑰<username>key.pub
然后創(chuàng)建目錄/home/<username>/.ssh,把公鑰拷貝到該目錄下:
$cp<username>key.pub/home/<username>/.ssh/authrized_keys#文件名必須為authorized_keys。請期待下節(jié)關(guān)于SVN入門介紹。
【編輯推薦】