您好,登錄后才能下訂單哦!
本文系統(tǒng):Centos6.5_x64 本地lamp環(huán)境 ip:192.168.184.129
一、搭建svn,實現(xiàn)svn方式訪問、本地用戶認(rèn)證
二、實現(xiàn)http方式訪問、apache本地文件認(rèn)證
subversion目錄說明:
*dav目錄:是提供apache與mod_dav_svn使用的目錄,讓他們存儲內(nèi)部數(shù)據(jù)
*db目錄:就是所有版本控制的數(shù)據(jù)存放文件
*hooks目錄:放置hook腳本文件的目錄
*locks目錄:用來放置subversion見艱苦鎖定數(shù)據(jù)的目錄,用來追蹤存取文件庫的客戶端
*format文件:是一個文本文件,里面只放了一個整數(shù)。表示當(dāng)前文件庫配置的版本號
*conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權(quán)限等)
一、搭建svn服務(wù);
1、搭建svn服務(wù);
[root@Aries ~]# yum install ntsysv vim-enhanced subversion mod_perl gcc-c++ make unzip -y
2、新建一個目錄用于存儲SVN所有文件、創(chuàng)建版本倉庫
[root@Aries ~]# mkdir /opt/svn [root@Aries ~]# svnadmin create /opt/svn/svn
3、初始化版本倉庫中的目錄;
倉庫目錄結(jié)構(gòu)說明:
[root@Aries ~]# mkdir svn svn/dev svn/qa svn/ops svn/pub svn/ops/web svn/ops/wap [root@Aries ~]# tree svn svn ├── dev #研發(fā)目錄 ├── ops #運(yùn)維目錄 │ ├── wap #工程目錄 │ └── web ├── pub #公共目錄 └── qa #測試目錄 6 directories, 0 files
導(dǎo)入倉庫:
[root@Aries ~]# svn import svn/ file:///opt/svn/svn/ -m "init svn repo" 增加 svn/ops 增加 svn/ops/wap 增加 svn/ops/web 增加 svn/qa 增加 svn/pub 增加 svn/dev 提交后的版本為 1。 [root@Aries ~]# rm -rf svn/
4、添加用戶
要添加SVN用戶非常簡單,只需在/opt/svn/svn/conf/passwd文件添加一個形如“username=password”的條目就可以了。
[root@Aries conf]# pwd /opt/svn/svn/conf [root@Aries conf]# cat passwd |grep -v ^# [users] admin = admin #管理員 dev = dev #研發(fā)測試賬號 qa = qa ops = ops zq = zq #普通個人賬號
5,修改用戶訪問策略
/opt/svn/opt/conf/authz記錄用戶的訪問策略,
[root@Aries conf]# cat authz [groups] g_admin = admin g_dev = dev g_qa = qa g_ops = ops,zq [svn:/] @g_admin = rw * = [svn:/dev] @g_admin = rw @g_dev = rw @g_qa = r * = [svn:/qa] @g_admin = rw @g_qa = rw @g_dev = r @g_ops = r * = [svn:/ops] @g_admin = rw @g_ops = rw @g_qa = r * = [svn:/pub] @g_admin = rw @g_ops = rw @g_qa = rw @g_dev = rw * =
說明:以上信息表示,只有admin用戶組有根目錄的讀寫權(quán)。r表示對該目錄有讀權(quán)限,w表示對該目錄有寫權(quán)限,rw表示對該目錄有讀寫權(quán)限。最后一行的* =表示,除了上面設(shè)置了權(quán)限的用戶組之外,其他任何人都被禁止訪問本目錄。這個很重要,一定要加上!
6,修改svnserve.conf文件,讓用戶和策略配置生效。
[root@Aries conf]# cat svnserve.conf [general] anon-access = none auth-access = write password-db = /opt/svn/svn/conf/passwd auth-db = /opt/svn/svn/conf/authz [sasl]
7、啟動svn服務(wù)
[root@Aries ~]# svnserve -d -r /opt/svn
8、測試服務(wù)
[root@Aries ~]# svn co svn://192.168.184.129/svn --no-auth-cache --username username --password passwd
測試提交
二、實現(xiàn)http方式訪問、apache本地文件認(rèn)證
由于SVN服務(wù)器的密碼是明文的,HTTP服務(wù)器不與支持,所以需要轉(zhuǎn)換成HTTP支持的格式。
1、安裝apache svn 集成依賴包,會產(chǎn)生兩個so文件,
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
[root@Aries ~]# yum install mod_dav_svn -y
2、將svn的用戶配置轉(zhuǎn)換為http認(rèn)證文件
以下為一個小腳本;方便轉(zhuǎn)換
[root@Aries conf]# pwd /opt/svn/svn/conf [root@Aries conf]# cat stoh.pl use warnings; use strict; open (FILE, "passwd") or die ("Cannot open the passwd file!!!n"); open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!n"); close (OUT_FILE); foreach (<FILE>) { if($_ =~ m/^[^#].*=/) { $_ =~ s/=//; `htpasswd -b webpasswd $_`; } }
進(jìn)行轉(zhuǎn)換;
[root@Aries conf]# perl stoh.pl Adding password for user admin Adding password for user dev Adding password for user qa Adding password for user ops Adding password for user zq
3、修改httpd.conf,添加關(guān)于SVN服務(wù)器的內(nèi)容
[root@Aries conf]# vim /etc/httpd/conf/httpd.conf #add for svn <Location /svn> DAV svn SVNPath /opt/svn/svn/ AuthType Basic AuthName "Authentication for svn" AuthUserFile /opt/svn/svn/conf/webpasswd AuthzSVNAccessFile /opt/svn/svn/conf/authz Satisfy all Require valid-user </Location>
重啟服務(wù)
[root@Aries conf]# /etc/init.d/httpd restart
4、進(jìn)行頁面測試;
切換賬號測試
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。