您好,登錄后才能下訂單哦!
1、說(shuō)明
rhel6.4系統(tǒng)下搭建apache+svn
2、實(shí)現(xiàn)
1)在服務(wù)器上安裝配置SVN服務(wù);
2)SVN服務(wù)支持svnserve獨(dú)立服務(wù)模式訪問(wèn);
3)SVN服務(wù)支持Apache的http模式訪問(wèn)。
3、安裝svn服務(wù)器
[root@reedoracle ~]# yum install -y subversion [root@reedoracle ~]# rpm -qa|grep subversion subversion-1.6.11-15.el6_7.x86_64
4、安裝apache服務(wù)器
[root@reedoracle ~]# yum install -y httpd [root@reedoracle ~]# rpm -qa|grep http httpd-2.2.15-56.el6.centos.3.x86_64
5、配置SVN版本庫(kù)
[root@reedoracle ~]# mkdir /svn [root@reedoracle ~]# svnadmin create /svn/reed #創(chuàng)建版本庫(kù)命令 [root@reedoracle ~]# cd /svn/reed/ [root@reedoracle reed]# ll total 24 drwxr-xr-x 2 root root 4096 Apr 6 05:09 conf drwxr-sr-x 6 root root 4096 Apr 6 05:09 db -r--r--r-- 1 root root 2 Apr 6 05:09 format drwxr-xr-x 2 root root 4096 Apr 6 05:09 hooks drwxr-xr-x 2 root root 4096 Apr 6 05:09 locks -rw-r--r-- 1 root root 229 Apr 6 05:09 README.txt
6、用戶密碼passwd配置
[root@reedoracle reed]# cd conf/ [root@reedoracle conf]# ll total 12 -rw-r--r-- 1 root root 1080 Apr 6 05:09 authz -rw-r--r-- 1 root root 309 Apr 6 05:09 passwd -rw-r--r-- 1 root root 2279 Apr 6 05:09 svnserve.conf [root@reedoracle conf]# vim passwd [root@reedoracle conf]# grep '^[^#]' passwd [users] admin=123 #管理員 reed=123 #普通用戶 deer=123 #普通用戶
7、權(quán)限控制authz配置
[root@reedoracle conf]# vim authz [root@reedoracle conf]# grep '^[^#]' authz [aliases] [groups] #根目錄下(即/svn/reed)管理員可讀寫(xiě),其它用戶只讀 [/] *=r admin=rw #public目錄,任何用戶都可以讀寫(xiě) [/public] *=rw #reed目錄,只允許admin/reed讀寫(xiě),其他用戶無(wú)任何權(quán)限 [/reed] admin=rw reed=rw *= #deer目錄,只允許admin/deer讀寫(xiě),其他用戶無(wú)任何權(quán)限 [/deer] admin=rw deer=rw *=
8、服務(wù)svnserve.conf配置
[root@reedoracle conf]# vim svnserve.conf [root@reedoracle conf]# grep '^[^#]' svnserve.conf [general] anon-access = none #禁止匿名訪問(wèn),設(shè)置為none。默認(rèn)為read,參數(shù):read,write,none password-db = passwd #指向用戶信息文件 authz-db = authz #指向權(quán)限信息文件 realm = /svn/reed #每個(gè)SVN項(xiàng)目的認(rèn)證名,會(huì)在認(rèn)證提示里顯示,建議寫(xiě)項(xiàng)目名稱。 [sasl] [root@reedoracle conf]#
9、啟動(dòng)SVN服務(wù)
[root@reedoracle conf]# svnserve -d -r /svn
10、使用checkout導(dǎo)出文件
10.1、使用TortoiseSVN客戶端測(cè)試
本地新建public、reed和deer三個(gè)目錄(與authz的權(quán)限配置對(duì)應(yīng))
10.2、使用linux命令行測(cè)試
[root@reedoracle deer]# svn co svn://127.0.0.1/reed Authentication realm: <svn://127.0.0.1:3690> /svn/reed Password for 'root': Authentication realm: <svn://127.0.0.1:3690> /svn/reed Username: deer Password for 'deer': ----------------------------------------------------------------------- ATTENTION! Your password for authentication realm: <svn://127.0.0.1:3690> /svn/reed can only be stored to disk unencrypted! You are advised to configure your system so that Subversion can store passwords encrypted, if possible. See the documentation for details. You can avoid future appearances of this warning by setting the value of the 'store-plaintext-passwords' option to either 'yes' or 'no' in '/root/.subversion/servers'. ----------------------------------------------------------------------- Store password unencrypted (yes/no)? yes A reed/deer A reed/public Checked out revision 1. [root@reedoracle reed]# ls deer public [root@reedoracle reed]# svn up . A public/restartsvn.sh Updated to revision 2. [root@reedoracle reed]#
11、配置svn支持http訪問(wèn)
通過(guò) Http 協(xié)議訪問(wèn)版本庫(kù)是 Subversion 的亮點(diǎn)之一。使用 Http 協(xié)議意味著只需要打開(kāi)瀏覽器,輸入 URL 即可輕松的瀏覽整個(gè)版本庫(kù)。靈活通常帶來(lái)復(fù)雜性,Http 方式相對(duì)于 svnserve 方式來(lái)說(shuō)需要更多的配置。
由于 Subversion 需要版本化的控制,因此標(biāo)準(zhǔn)的 Http 協(xié)議不能滿足需求。要讓 Apache 與 Subversion 協(xié)同工作,需要使用 WebDAV(Web 分布式創(chuàng)作和版本控制)。WebDAV 是 HTTP 1.1 的擴(kuò)展,關(guān)于 WebDAV 的規(guī)范和工作原理,可以參考 IETF RFC 2518。
為了使 Subversion 與 dav 模塊通信,需要安裝 mod_dav_svn 插件。
11.1、安裝mod_dav_svn
[root@reedoracle conf]# yum install mod_dav_svn
11.2、配置subversion.conf
[root@reedoracle conf.d]# grep '^[^#]' subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so #以上兩行默認(rèn)已添加,僅需添加以下內(nèi)容 <Location /reed> DAV svn SVNPath /svn/reed AuthType Basic # 使用基本認(rèn)證方式,即用戶名、密碼認(rèn)證 AuthName "svn reed" # 在認(rèn)證對(duì)話框中出現(xiàn)的提示信息 AuthUserFile /svn/reed/svnuser # 指定http存放用戶名信息的文件路徑 AuthzSVNAccessFile /svn/reed/conf/authz #AuthzSVNAccessFile 指向的是 authz 的策略文件 Satisfy Any Require valid-user # 限定只有用戶輸入正確的用戶名和密碼后才能訪問(wèn)該標(biāo)簽所指向的路徑 </Location>
11.3、創(chuàng)建賬號(hào)密碼認(rèn)證文件
/svn/reed/conf/authz文件是svnserve獨(dú)立服務(wù)器使用的認(rèn)證文件,密碼沒(méi)有加密,明文顯示。
/svn/reed/svnuser文件是Apache的http模式使用的認(rèn)證文件,密碼使用MD5加密。
authz和svnuser文件中,賬號(hào)密碼必須設(shè)置相同。
[root@reedoracle conf.d]# htpasswd -c /svn/reed/svnuser admin New password: Re-type new password: Adding password for user admin [root@reedoracle conf.d]# htpasswd /svn/reed/svnuser reed New password: Re-type new password: Adding password for user reed [root@reedoracle conf.d]# htpasswd /svn/reed/svnuser deer New password: Re-type new password: Adding password for user deer
12、啟動(dòng)httpd服務(wù)
[root@reedoracle conf.d]# /etc/init.d/httpd start Starting httpd: httpd: apr_sockaddr_info_get() failed for reedoracle httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName [ OK ]
13、測(cè)試
13.1、通過(guò)客戶端訪問(wèn),輸入用戶密碼(passwd文件對(duì)應(yīng)的用戶密碼)
13.2、通過(guò)瀏覽器訪問(wèn)(svnuser文件對(duì)應(yīng)的用戶密碼)
14、附
為方便調(diào)試(需要頻繁重啟測(cè)試),共享個(gè)腳本給大家:
#!/bin/sh . /etc/profile svnid=$(ps -ef|grep 'svnserve -d -r'|grep -v grep|awk '{print $2}') if [ $svnid ];then kill -9 $svnid svnserve -d -r /svn echo "restart done..." else echo "not start,now begin to start..." svnserve -d -r /svn echo "start done..." fi
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。