溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

RHEL6.4下搭建apache和subversion(SVN)

發(fā)布時(shí)間:2020-07-14 19:50:03 來(lái)源:網(wǎng)絡(luò) 閱讀:1372 作者:初級(jí)泥水工 欄目:關(guān)系型數(shù)據(jù)庫(kù)

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è)試

RHEL6.4下搭建apache和subversion(SVN)

本地新建public、reed和deer三個(gè)目錄(與authz的權(quán)限配置對(duì)應(yīng))

RHEL6.4下搭建apache和subversion(SVN)


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)的用戶密碼)

RHEL6.4下搭建apache和subversion(SVN)

13.2、通過(guò)瀏覽器訪問(wèn)(svnuser文件對(duì)應(yīng)的用戶密碼)

RHEL6.4下搭建apache和subversion(SVN)


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



向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI