最近在研究jenkins源譬,因在研究階段,所有不敢用公司的svn壹置,所以只好自己動(dòng)手操作了竞思,對(duì)于打包工具來說,我是小白中的小白钞护,現(xiàn)在小白就給你講解一下親身經(jīng)過的svn安裝過程盖喷。
創(chuàng)建Centos6.5虛擬機(jī)并連外網(wǎng),并配置yum網(wǎng)絡(luò)源
SVN
一难咕、安裝svn
?yum install subversion ? ?
二课梳、基本的SVN服務(wù)器配置
1.新建一個(gè)目錄用于存儲(chǔ)SVN所有文件 ? mkdir /home/svn
2.新建一個(gè)版本倉(cāng)庫(kù) ? ?svnadmin create /home/svn/project
? ?新建第二個(gè)版本倉(cāng)庫(kù) ?svnadmin create /home/svn/project1
在每個(gè)版本倉(cāng)庫(kù)里生成四個(gè)目錄,conf余佃,db,hooks與locks暮刃,其中conf里面的文件含義:
? ? ? ? authz文件是權(quán)限控制文件
? ? ? ? passwd是賬號(hào)密碼文件
? ? ? ? svnserve.conf 是SVN服務(wù)配置文件
db,hooks,locks后期補(bǔ)充說明
3.在某倉(cāng)庫(kù)目錄里將conf目錄拷貝至/home/svn目錄,應(yīng)該是方便后期每個(gè)用戶都可以訪問不同的倉(cāng)庫(kù)爆土。
每個(gè)倉(cāng)庫(kù)下的conf目錄里只保留svnserve.conf椭懊,authz與passwd刪除。
3.添加用戶
要添加SVN用戶非常簡(jiǎn)單步势,只需在/home/svn/conf/passowrd文件中[users]下用戶名及密碼
username=password 格式的內(nèi)容即可氧猬,我添加了
4.修改用戶訪問策略 /home/svn/conf/authz
? ? ? ? ? ? ? ? ? ? ? ? ? [project:/]?
? ? ? ? ? ? ? ? ? ? ? ? ? ?rln=rw
? ? ? ? ? ? ? ? ? ? ? ? ? ?sjz=rw
5.修改/home/svn/conf/svnserve.conf文件,讓用戶和策略配置升效.
svnserve.conf內(nèi)容如下:
[general] ? ? ??
anon-access = none
auth-access = write ?#授權(quán)用戶可寫
password-db = /home/svn/conf/passwd? ? #(這個(gè)可以是絕對(duì)地址 也可以是相對(duì)文件地址,原因是 可以多個(gè)代碼倉(cāng)庫(kù)共享同一個(gè)密碼設(shè)定)
authz-db = /home/svn/conf/authz ?
注:[general]里的內(nèi)容行開頭不能有空格坏瘩,否則報(bào)錯(cuò)盅抚,我就吃虧這兒了
6.修改/home/svn/倉(cāng)庫(kù)/conf/svnserve.conf文件,以project為例.
svnserve.conf內(nèi)容如下:
[general]
anon-access = none
auth-access = write ?#授權(quán)用戶可寫
password-db = /home/svn/conf/passwd? ? #(這個(gè)可以是絕對(duì)地址 也可以是相對(duì)文件地址倔矾,原因是 可以多個(gè)代碼倉(cāng)庫(kù)共享同一個(gè)密碼設(shè)定)
authz-db = /home/svn/conf/authz
第6步不知道是否保留泉哈,反正我配置了
7.啟動(dòng)服務(wù)/停止服務(wù)
svnserve -d -r /home/svn ? ? ? ?#啟動(dòng)服務(wù)
ps -ef|grep svnserve ? #查找svnserve進(jìn)程號(hào)使用kill -9 殺掉,即可停止服務(wù)
8.測(cè)試svn服務(wù)
現(xiàn)在就配置好了破讨,那咱們提交一個(gè)文件測(cè)試一下吧
提交也不是哪個(gè)位置都可以丛晦,需要進(jìn)入之前創(chuàng)建的臨時(shí)目錄/home/svn/project/conf/project/server,在此目錄隨便創(chuàng)建一個(gè)文件提陶,執(zhí)行svn add 與svn commit即可烫沙,最后會(huì)提示提交后的版本為n(n代表版本號(hào))
若想使用http訪問,則需要進(jìn)行以下配置
三隙笆,配置SVN服務(wù)器的HTTP支持
1锌蓄,轉(zhuǎn)換SVN服務(wù)器的密碼
由于SVN服務(wù)器的密碼是明文的升筏,HTTP服務(wù)器不與支持,所以需要轉(zhuǎn)換成HTTP支持的格式瘸爽。.將/home/svn/conf/passwd備份您访,在命令行中執(zhí)行以下
vim passwd #清空文件
htpasswd -c passwd rln ? ? #會(huì)讓輸入訪用戶的密碼
htpasswd ?passwd szj ? ? #第二次以后不必添加-c,同樣輸入密碼
現(xiàn)在目錄下會(huì)多一個(gè)passwd文件剪决,則必須在該文件頂部添加[users]灵汪。
注:添加完用戶后,都要添加[users]柑潦,若下次新增用戶了享言,則需要?jiǎng)h除頂部的[users],再htpasswd 文件名 用戶名格式添加用戶渗鬼,然后再添加[users]览露。
2,修改httpd.conf譬胎,添加關(guān)于SVN服務(wù)器的內(nèi)容差牛,在此步之前需要安裝 mod_dav_svn,否則在啟動(dòng)httpd服務(wù)時(shí)報(bào)DAV錯(cuò)誤,yum install mod_dav_svn.
mod_dav_svn堰乔,它是Subversion與Apache之間的接口(通過它多糠,Apache就可以訪問版本庫(kù),可以讓客戶端也使用HTTP的擴(kuò)展協(xié)議 WebDAV/DeltaV進(jìn)行訪問)
編輯/etc/httpd/conf.d/subversion.conf浩考,在最后添加如下信息:
<Location /project>
DAV svn
SVNPath /home/svn/project/
AuthType Basic
AuthName "svn for project"
AuthUserFile /home/svn/conf/webpasswd
AuthzSVNAccessFile /home/svn/conf/authz
Satisfy all
Require valid-user
</Location>
在/etc/httd/conf/httpd.conf文件中更改
?Listen 9999 ? ? ?#默認(rèn)是80
?ServerNmae localhost:9999
3夹孔,啟動(dòng)HTTPD服務(wù)器
# service httpd restart
Stopping httpd:??????????????????????????????????????????? [FAILED]
Starting httpd:??????????????????????????????????????????? [? OK? ]
四、此過程遇到的問題及解決方案
1析孽、通過svn從從客戶端提交代碼時(shí)出現(xiàn)
svn: Can't open file '/home/svn/project/db/txn-current-lock': Permission denied
最直接的辦法是給它權(quán)限即用 ?sudo chmod 777?/home/svn/project 即可解決問題
2搭伤、svnserve -d -r /home/svn在啟動(dòng)hhtpd時(shí)出現(xiàn):svnserve: 不能綁定服務(wù)器套接字: 地址已在使用
說明該進(jìn)程正在使用可以用命令?ps -aux 查看進(jìn)程
用命令kill -9 +進(jìn)程標(biāo)識(shí)號(hào)來強(qiáng)行終止進(jìn)程即可解決
3.啟動(dòng)服務(wù)時(shí)報(bào)以下錯(cuò)誤
正在啟動(dòng) httpd:httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.152.128 for ServerName
請(qǐng)更改
# vi httpd.conf
? ? ? #ServerName www.example.com:80
? ? ? ?ServerName localhost:80 ? ? ? #端口號(hào)需要設(shè)置你更改的值,默認(rèn)是80
4.瀏覽器用戶登錄后袜瞬,報(bào)無權(quán)限?
在/etc/http/conf/httpd.conf 文件中 Section 2: 'Main' server configuration部分中的 Alias部分添加以下
Alias /svn/ "/home/svn/" ? ?#必須有最后的/
Options Indexes MultiViews FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
重啟服務(wù)即可
5.TortoiseSVN 使用http訪問時(shí)報(bào)“zd URL 'http://IP:端口號(hào)/訪問目錄'檢測(cè)到循環(huán)重定向”怜俐,目前正在解決中
6.權(quán)限介紹記錄
五、用瀏覽器訪問http://192.168.X.X/project測(cè)試