1. 程式人生 > >liunx服務搭建之SVN伺服器搭建、授權及http訪問設定(CentOS 7)

liunx服務搭建之SVN伺服器搭建、授權及http訪問設定(CentOS 7)

環境:

svnserve, version 1.7.14,CentOS 7

摘要說明:

svn伺服器往往是在window系統下使用VisualSVN搭建伺服器;本篇文章主要講述在liunx下如何搭建svn伺服器及相關授權管理和http訪問設定;

步驟:

1.搭建SVN伺服器

a.安裝SVN服務

使用yum命令安裝svn服務:

yum install subversion

檢視是否安裝成功:

svnserve --help

b.建立repository

建立repository目錄:

mkdir -p /home/svn/svnrepos

使用svnadmin命令建立repository:

svnadmin create /home/svn/svnrepos

開啟該目錄檢視目錄結構:

cd /home/svn/svnrepos
ls
conf  db  format  hooks  locks  README.txt

2.建立賬戶及授權

a.建立使用者

在上述目錄下通過編輯/conf/passwd來新增使用者:

vi /conf/passwd
cc=111111

即建立好使用者cc密碼為111111

b.使用者授權

通過編輯/conf/authz來進行使用者授權:

vi /conf/authz
[/]
cc=rw

即授權使用者cc讀寫許可權:rw-讀寫;r-只讀;

[/]是授權根目錄,

其他可參考authz.config檔案:

[groups]為組定義,可以在該組下加很多使用者,以,分割,

但是該使用者資料必須在/homd/svn/conf/pwd.conf中定義好,

[/]表示根目錄以下的許可權定義

[repos1:/]表示倉庫下的許可權定義

如果要分專案,則以此規則類推:

如:[repos1:/aaa]則表示倉庫下的aaa專案的許可權定義。

@admin表示admin這個組下的使用者許可權。

user1=r表示user1這個使用者的許可權。

c.svn配置

通過編輯/conf/svnserve.conf來進行使用者授權,可將下面幾個選項根據情況設定:

anon-access = read #匿名使用者可讀


auth-access = write #授權使用者可寫
password-db = passwd #使用哪個檔案作為賬號檔案
authz-db = authz #使用哪個檔案作為許可權檔案
realm = /home/svn/svnrepos # 認證空間名,版本庫所在目錄

3.啟動svn

通過命令svnserve -d -r啟動svn服務:

svnserve -d -r /home/svn/svnrepos

停止svn服務:

killall svnserve

svn預設埠為3690;

阿里雲可通過設定該埠對外即可訪問;其他伺服器可通過設定防火牆開啟訪問:

vi /etc/sysconfig/iptables-config
-A INPUT -i eth0 -p tcp -m tcp --dport 3690 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3690 -j ACCEPT 

儲存配置,重啟防火牆:

service iptables save
service iptables restart

但此時只能夠通過svn://ip訪問;

4.配置Apache

a.安裝apache及module

安裝apache(httpd):

yum install httpd

安裝必備元件:

yum install mod_dav_svn
yum install mod_authz_svn

b.建立加密授權

建立加密授權(因上述svn的授權未加密,如httpd的授權不符):

先建立授權檔案

touch /home/svn/svnrepos/conf/accesspwd

再建立使用者,建立使用者後重復輸入密碼:

htpasswd /home/svn/svnrepos/conf/accesspwd xx

c.配置代理

配置https代理檔案:

touch /etc/httpd/conf.d/subversion.conf

使用vi命令寫入:

<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn/
AuthType Basic
AuthName "Subversion repos"
AuthzSVNAccessFile /home/svn/svnrepos/conf/authz
AuthUserFile /home/svn/svnrepos/conf/accesspwd
Require valid-user
</Location>

啟動svn:

service httpd restart

使用http://xxx.xxx.xxx.xxx/svn/訪問