- svnserver
- svnserver + ssh
- apache
1. svnserver, a custom server
svnserver是一種較為不耗費資源的service, 建立於TCP/IP的基礎通訊協定上,client side可透過svn://來進行溝通。
常見的有兩種模式啟動svnserver:(1) as stand alone, (2) as daemon
(1) as stand alone (/etc/init.d)
$> svnserver -d -r /svn(2) as daemon (/etc/xinetd.d)
# -d : 以daemon方式執行
# -r : 虛擬根目錄, 限制只能在此目錄底下的瀏覽
$> lsof -i :3690
# 可以查看svnserver是否已正常啟動
$> vi /etc/xinetd.d/svnserve1.1 svnserve.conf (配置設定)
##新增以下文字內容
service svnserve
{
disable = no
socket_type = stream
wait = no
user = apache
server = /usr/local/subversion/bin/svnserve
server_args = -i
}
$> vi /etc/services
##確認有無以下文字內容, 若不存在, 請新增於檔案內容中
svnserve 3690/tcp #Subversion svnserve
svnserve 3690/udp #Subversion svnserve
[general]1.2 passwd (使用者帳號)
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
# realm = My First Repository
[users]1.3 authz (授權管理)
## username = password
admin = admin
yardmgr = yardmgr
[groups]
administrators = admin
developer_team = mills
[/]
* =
@administrators = rw
[/svn/yard:/]
@developer_team = rw
[/svn/test:/]
@developer_team = rw
2. apache, a http server
apache是一種較為耗費資源的service, 建立於WebDav的基礎通訊協定上,client side可透過http://來進行溝通。
(1) Apache2 Config (I) -- Add SVN Modules
$>vi /usr/local/apache2/conf/httpd.conf
##確認有無以下內容, 若不存在, 請新增貼上
##若沒有mod_dav_svn模組, SVN則無法以http方式運作
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modles/mod_authz_svn.so
(2) Apache2 Config (I) -- Add SVN Path
$>vi /usr/local/apache2/conf/httpd.conf
##確認有無以下內容, 若不存在, 請新增貼上
<Location>
DAV svn
SVNPath /svn/test
# our access control policy, below (4)
AuthzSVNAccessFile /svn/svn-authz
AuthType Basic
AuthName "Version Control System"
# how to authenticate a user, below (3)
AuthUserFile /svn/svn-auth-file
# only authenticated users may access the repository
Require valid-user
</Location>
(3) Setting up http authentication (建立認證帳號)
$>htpasswd -c -m /svn/svn-auth-file admin
# 輸入第1個使用者帳號, 第1次建立才加 -c
# -c : 建立新檔
# -m : 採以MD5編碼
$>htpasswd -m /svn/svn-auth-file yardmgr
# 輸入第2個使用者帳號
(4) Setting up svn authorization (建立授權管理)
$> vi /svn/svn-authz
# 新增以下文字內容
[groups]
administrators = admin
developer_team = yardmgr
[/]
* =
@administrators = rw
[/svn/test:/]
@developer_team = rw
沒有留言:
張貼留言