1. 安裝SVN服務(wù)器:
檢查是否已安裝
# rpm -qa subversion
安裝SVN服務(wù)器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql


驗(yàn)證安裝
# cd /etc/httpd/modules
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

查看版本
# svnserve --version

2. 代碼庫(kù)創(chuàng)建:
安裝完成后要建立
SVN庫(kù)
# mkdir -p /home/svn/yxlsg
# svnadmin create /home/svn/yxlsg
執(zhí)行后,自動(dòng)建立yxlsg庫(kù),查看/home/svn/yxlsg文件夾包含了
conf,db,format,hooks,locks,README.txt等文件,說(shuō)明一個(gè)SVN庫(kù)已經(jīng)建立。

3. 配置版本庫(kù):
進(jìn)入
conf文件夾下,進(jìn)行配置:
# cd /home/svn/conf/
a. 用戶(hù)密碼passwd配置:
新增用戶(hù)和密碼
# htpasswd pwd.conf user #新增用戶(hù),回車(chē)輸入密碼,再回車(chē)確認(rèn)密碼

b. 權(quán)限控制authz配置:
# vi authz
設(shè)置哪些用戶(hù)可以訪問(wèn)哪些目錄,向
authz文件追加以下內(nèi)容:
[groups] #用戶(hù)組
admin=admin
dev=user1,user2
test=user3,user4
other=user5
[/]
@admin=rw //該用戶(hù)組下的所有用戶(hù)
訪問(wèn)所有庫(kù)的權(quán) 或
[yxlsg:/] //yxlsg庫(kù)的根目錄權(quán)限
@admin=rw
[/01Code]
@admin=rw
/ 表示根目錄及以下,根目錄是svnserve啟動(dòng)時(shí)指定的,我們指定的是/home/svn;/ 就是指對(duì)全部版本庫(kù)都具有權(quán)限
yxlsg:
/ 表示對(duì)庫(kù)yxlsg的根目錄設(shè)置權(quán)限
/01Code 表示對(duì)該目錄設(shè)置權(quán)限
PS:
權(quán)限配置文件中出現(xiàn)的用戶(hù)名必須已在用戶(hù)配置文件中定義。
對(duì)權(quán)限配置文件的修改立即生效,不必重啟svn。
c. 服務(wù)svnserve.con配置:
# vi svnserve.conf
添加一下內(nèi)容:
[general]
#匿名訪問(wèn)的權(quán)限,可以是read,write,none,默認(rèn)為read
anon-access=none
#使授權(quán)用戶(hù)有寫(xiě)權(quán)限
auth-access=write
#密碼數(shù)據(jù)庫(kù)的路徑
password-db=passwd
#訪問(wèn)控制文件
authz-db=authz
#認(rèn)證命名空間,subversion會(huì)在認(rèn)證提示里顯示,并且作為憑證緩存的關(guān)鍵字
realm=/home/svn/yxlsg
這里注意各標(biāo)簽不能錯(cuò),也不能有重復(fù),不然無(wú)法連接。
d.修改ip訪問(wèn)端口:進(jìn)入/etc/httpd/conf目錄,
# vi httpd.conf
Listen 81 #默認(rèn)是80,可以改為自己配置的端口
查找Apache服務(wù)和啟動(dòng)Apache
# find /* -name httpd #查找
# /usr/local/httpd-2.2.34/httpd #啟動(dòng),停電需要重啟,81端口
檢測(cè)SVN是否開(kāi)機(jī)啟動(dòng)
# chkconfig --list svnserve
svnserve 0:off 1:off 2:off 3:off 4:off 5:off 6:off
如果2~5是off表示沒(méi)有開(kāi)機(jī)自動(dòng)開(kāi)啟,如果為on則反之。
開(kāi)啟啟動(dòng)命令;
# chkconfig on svnserve
取消開(kāi)機(jī)啟動(dòng)命令:
# chkconfig off svnserve
好的就這樣完成了,其他服務(wù)同理。
e.配置權(quán)限目錄和用戶(hù)目錄:進(jìn)入/etc/httpd/conf.d目錄,
# vi subversion.conf
編輯或者新增以下內(nèi)容:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn
AuthType Basic
AuthName "Authorization"
AuthUserFile /home/svn/conf/pwd.conf #用戶(hù)賬號(hào)配置路徑,可以新建文件
AuthzSVNAccessFile /home/svn/conf/authz.conf #用戶(hù)權(quán)限配置路徑,可以新建文件
Require valid-user
</Location>
f. 配置防火墻端口(可以不用配置):
不一定每個(gè)人都需要設(shè)置,可以先測(cè)試后再看是否需要打開(kāi)端口
# vi /etc/sysconfig/iptables
添加一下內(nèi)容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重啟防火墻
# service iptables restart

4. 查看:
a. 啟動(dòng)SVN
# svnserve -d -r /home/svn/
b. 查看SVN進(jìn)程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /home/svn/
c. 檢測(cè)SVN端口
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
5. 停止重啟SVN:
# killall svnserve //停止
# svnserve -d -r /home/svn/ // 啟動(dòng)
6. 測(cè)試連接:
使用
TortoiseSVN進(jìn)行測(cè)試:
- SVN服務(wù)啟動(dòng)后,需要使用客戶(hù)端測(cè)試連接:
客戶(hù)端連接地址:
http://192.168.74.112:81/svn/yxlsg/;然后,輸入用戶(hù)名密碼;
新建一個(gè)文件夾,即本地的庫(kù)文件夾,右鍵
checkout,會(huì)svn上相關(guān)目錄檢出到本地庫(kù);在此文件夾中放入項(xiàng)目?jī)?nèi)容,然后右鍵點(diǎn)擊commit,就可以上傳本地項(xiàng)目了。