日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Svn服务器的搭建与配置

發(fā)布時(shí)間:2023/12/9 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Svn服务器的搭建与配置 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文由ilanniweb提供友情贊助,首發(fā)于爛泥行天下

想要獲得更多的文章,可以關(guān)注我的微信ilanniweb

要把svn代碼同步到git服務(wù)器上,本來是想通過subgit直接同步進(jìn)行就行了。但是自已以前沒有搭建過svn服務(wù)器,所以有了這篇文章。

我們就來介紹下svn服務(wù)器的搭建,下一篇文章,我們再介紹svn與git服務(wù)器之間的代碼同步。

Svn服務(wù)器的搭建與配置網(wǎng)上文章很多,我們只介紹自己關(guān)注的幾點(diǎn)。

一、安裝svn

和以前的文章一樣,要搭建svn服務(wù)器,我們首先要安裝svn,根據(jù)OS的不同,我們來介紹在centos和ubuntu上的安裝。

1.1 在centos上安裝

在centos上安裝svn非常簡單,我們直接使用yum方式進(jìn)行安裝即可,命令如下:

yum -y install install subversion httpd mod_dav_svn mod_perl mod_ssl openssl

svn安裝完畢后,我們來查看svn的版本,如下:

svn –version

通過上圖可以看到,目前centos6上svn的版本還是1.6的,版本比較舊了,不過不影響svn的使用就ok。

1.2 在ubuntu上安裝

在ubuntu上安裝svn也是非常簡單,直接使用apt-get方式安裝即可,命令如下:

sudo apt-get -y install subversion apache2 libapache2-svn ssl-cert

svn安裝完畢后,我們來查看svn的版本,如下:

svn –version

通過上圖可以看到,目前ubuntu上svn的版本比較新是1.8的。

二、配置svn

svn安裝完畢后,我們現(xiàn)在來配置svn。svn的配置在centos和ubuntu上上基本上是一樣的,所以在此我們就不進(jìn)行區(qū)分了。

2.1 創(chuàng)建svn倉庫

首先,我們來新建一個ilanni目錄用于存儲svn倉庫,如下:

mkdir -p /data/ilanni

現(xiàn)在我們來創(chuàng)建第一個svn倉庫ilannisvn,使用如下命令:

svnadmin create /data/ilanni/ilannisvn

ll /data/ilanni/ilannisvn/

通過上圖,我們可以很明顯的看出svn創(chuàng)建倉庫時(shí)會生成conf、db等相關(guān)的目錄及文件。

現(xiàn)在,我們再來創(chuàng)建第二個svn倉庫ilannitest,使用如下命令:

svnadmin create /data/ilanni/ilannitest

ll /data/ilanni/ilannitest/

2.2 svn倉庫權(quán)限配置

svn倉庫創(chuàng)建完畢,我們就可以配置svn倉庫的訪問權(quán)限。

svn倉庫權(quán)限,我們可以進(jìn)行單獨(dú)配置,也可以進(jìn)行統(tǒng)一配置。考慮實(shí)際情況,一般會有多個svn倉庫,所以我們進(jìn)行統(tǒng)一配置。

首先,我們創(chuàng)建用于管理所有倉庫帳號密碼、權(quán)限控制等的目錄svndata,如下:

mkdir -p /data/svndata/

svndata目前創(chuàng)建完畢后,我們進(jìn)行其他文件的配置。

2.2.1 創(chuàng)建svnserve.conf文件

接下來我們來創(chuàng)建svn倉庫權(quán)限的總控制文件svnserve.conf,如下:

vim /data/svndata/svnserve.conf

[general]

#未鑒定的用戶無權(quán)限訪問該版本庫

anon-access = none

#鑒定后的可讀寫版本庫

auth-access = write

#使用的密碼文件是同級路徑的passwd文件,即是/data/svndata/passwd

password-db = passwd

#使用的權(quán)限控制文件是同級路徑的authz文件,即是/data/svndata/authz

authz-db = authz

#realm指定版本庫的認(rèn)證域,即在登錄時(shí)提示的認(rèn)證域名稱。各個倉庫的認(rèn)證域都可以自定義

realm = svndata

svnserve.conf文件主要是指定相關(guān)用戶和權(quán)限等配置。

2.2.2 創(chuàng)建passwd文件

svnserve.conf文件創(chuàng)建完畢后,我們來創(chuàng)建用于保存用戶和密碼的文件passwd,如下:

vim /data/svndata/passwd

[users]

ilanniadmin = 123456

test1 = 123456

test2 = 123456

test3 = 123456

passwd文件用于存儲用戶名和密碼,其中等號的兩邊要有一個空格,=前面是用戶名和,=后面是密碼,密碼是明文保存的。

2.2.3 創(chuàng)建authz文件

passwd文件創(chuàng)建后,我們開始創(chuàng)建svn倉庫的權(quán)限控制文件authz。

注意:權(quán)限管理的統(tǒng)一思路是:創(chuàng)建多個組,將各個用戶加入到各個組,控制各個組的權(quán)限。以后對權(quán)限管理就維持在組的維度上,否則以人為粒度管理,會死人滴。

vim /data/svndata/authz

[groups]

develop = test1,test2

android = test3

admin = ilanniadmin

[ilannisvn:/]

@develop = rw

@admin = rw

* =

[ilannisvn:/config]

@admin = rw

test1 = r

* =

[ilannitest:/]

@develop = r

@admin = rw

* =

現(xiàn)在這個權(quán)限控制是admin用戶組,對ilannisvn和ilannitest倉庫具有讀寫權(quán)限。

develop用戶組對ilannisvn倉庫具有讀寫權(quán)限,對ilannitest具有只讀權(quán)限,并且develop用戶組的test1用戶對ilannisvn倉庫下的config目錄只讀不能寫。

android用戶組對svn所有倉庫沒有任何訪問權(quán)限。

2.2.4 單獨(dú)配置svnserve.conf文件

在前面我們說了,要對svn倉庫權(quán)限進(jìn)行統(tǒng)一管理。而以上章節(jié)中,我們把相關(guān)的文件創(chuàng)建完畢后,我們只需要修改每個倉庫的svnserve.conf文件,這樣就能達(dá)到統(tǒng)一管理每個倉庫的權(quán)限。

修改ilannisvn倉庫的svnserve.conf文件,如下:

vim /data/ilanni/ilannisvn/conf/svnserve.conf

[general]

anon-access = none

auth-access = write

#說明使用總控制的密碼文件

password-db = /data/svndata/passwd

#說明使用總控制的權(quán)限文件

authz-db = /data/svndata/authz

realm = ilannisvn

修改ilannitest倉庫的svnserve.conf文件,如下:

vim /data/ilanni/ilannitest/conf/svnserve.conf

[general]

anon-access = none

auth-access = write

#說明使用總控制的密碼文件

password-db = /data/svndata/passwd

#說明使用總控制的權(quán)限文件

authz-db = /data/svndata/authz

realm = ilannitest

到此有關(guān)svn倉庫權(quán)限配置已經(jīng)完畢。

三、使用svn協(xié)議訪問

svn搭建與配置完畢后,我們現(xiàn)在來訪問svn。svn的訪問方法有幾種,在此我們只介紹最常使用的三種。先來介紹使用svn協(xié)議訪問的方法。

啟動svn,使用如下命令:

svnserve -d -r /data/ilanni/

ps -ef |grep svn

netstat -tunlp

通過上圖,我們可以很明顯看出svn協(xié)議使用tcp的3690端口。

現(xiàn)在我們來直接使用svn協(xié)議訪問svn服務(wù)器,如下:

svn co –username test1 –password 123456 svn://192.168.8.33/ilannisvn

svn info

通過上圖,我們可以很明顯的看出通過svn命令是可以訪問svn服務(wù)器的。

現(xiàn)在我們再來添加一個文件,然后提交到svn服務(wù)器,如下:

vim ilannisvn.txt

this is a test file.

svn add ilannisvn.txt

svn commit -m ‘ilannisvn test’

現(xiàn)在我們使用windows下的svn工具查看,如下:

svn://192.168.8.33/ilannisvn

通過上圖,我們可以看到test1用戶提交的日志。這就說明使用svn協(xié)議訪問svn服務(wù)器就已經(jīng)ok了。

四、使用http訪問

要使用http訪問svn服務(wù)器,我們需要配置apache服務(wù),下面根據(jù)OS不同分別講解下。

注意:無論是使用http還是https訪問svn,passwd文件都是通過htpasswd命令創(chuàng)建。

4.1 在centos上配置

在centos上配置apache與svn集成,我們只需要修改apache的配置文件subversion.conf即可。

subversion.conf修改內(nèi)容如下:

vim /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /repos>

?? DAV svn

SVNParentPath /data/ilanni

#一定要放在這行下面,否則會出現(xiàn)權(quán)限混亂的現(xiàn)象

AuthzSVNAccessFile /data/svndata/authz

?? AuthType Basic

?? AuthName “Authorization Realm”

AuthUserFile /data/svndata/passwd

#告訴apache在authfile中所有的用戶都可以訪問。 如果沒有它,則只能第一個用戶可以訪問新建庫。

Require valid-user

</Location>

subversion.conf文件修改完畢后,我們要重新創(chuàng)建svn的用戶和密碼文件passwd,但是passed文件我們要使用apache的工具h(yuǎn)tpasswd進(jìn)行創(chuàng)建。如下:

htpasswd -cm /data/svndata/passwd ilanniadmin

htpasswd命令參數(shù)中-c是創(chuàng)建passwd文件,-m是使用md5加密。

passwd文件創(chuàng)建完畢后,我們再來添加test1和test2用戶,使用如下命令:

htpasswd -m /data/svndata/passwd test1

htpasswd -m /data/svndata/passwd test2

htpasswd -m /data/svndata/passwd test3

passwd用戶和密碼添加完畢后,然后我們在修改/data目錄屬性,如下:

chown apache:apache -R /data/

chmod 755 -R /data/

以上配置完畢后,我們來重啟apache,使用如下命令:

/etc/init.d/httpd restart

4.2 使用svn客戶端驗(yàn)證

現(xiàn)在我們來使用svn客戶端來連接svn服務(wù)器,

以檢出ilannisvn倉庫為例,如下圖:

http://192.168.8.33/repos/ilannisvn

上圖中,輸入具有權(quán)限的用戶及密碼。

通過上圖,我們可以很明顯的看出,我們已經(jīng)從svn服務(wù)器檢出svn的代碼。這說明svn已經(jīng)能通過http訪問。

4.3 在ubuntu上配置

在ubuntu上配置apache與svn集成,和centos上一樣的,也只需要修改apache的配置文件subversion.conf即可。

subversion.conf修改內(nèi)容如下:

sudo vim /etc/apache2/mods-available/dav_svn.conf

<Location /repos>

?? DAV svn

? SVNParentPath /data/ilanni

#一定要放在這行下面,否則會出現(xiàn)權(quán)限混亂的現(xiàn)象

AuthzSVNAccessFile /data/svndata/authz

AuthType Basic

AuthName “Authorization Realm”

AuthUserFile /data/svndata/passwd

#告訴apache在authfile中所有的用戶都可以訪問。 如果沒有它,則只能第一個用戶可以訪問新建庫。

Require valid-user

</Location>

subversion.conf文件修改完畢后,我們要重新創(chuàng)建svn的用戶和密碼文件passwd,但是passed文件我們要使用apache的工具h(yuǎn)tpasswd進(jìn)行創(chuàng)建。如下:

htpasswd -cm /data/svndata/passwd ilanniadmin

htpasswd命令參數(shù)中-c是創(chuàng)建passwd文件,-m是使用md5加密。

passwd文件創(chuàng)建完畢后,我們再來添加test1和test2用戶,使用如下命令:

htpasswd -m /data/svndata/passwd test1

htpasswd -m /data/svndata/passwd test2

htpasswd -m /data/svndata/passwd test3

passwd用戶和密碼添加完畢后,然后我們在修改/data目錄屬性,如下:

sudo chown -R www-data:www-data /data/

sudo chmod 755 -R /data/

以上配置完畢后,我們來重啟apache,使用如下命令:

/etc/init.d/apache2 restart

4.4 使用svn客戶端驗(yàn)證

現(xiàn)在我們來使用svn客戶端來連接svn服務(wù)器,

以檢出ilannitest倉庫為例,如下圖:

http://192.168.8.34/repos/ilannitest

上圖中,輸入具有權(quán)限的用戶及密碼。

通過上圖,我們可以很明顯的看出,我們已經(jīng)從svn服務(wù)器檢出svn的代碼。這說明svn已經(jīng)能通過http訪問。

五、使用https訪問

要使用https訪問svn服務(wù)器,我們也是需要配置apache服務(wù),下面根據(jù)OS不同分別講解下。

注意:無論是使用http還是https訪問svn,passwd文件都是通過htpasswd命令創(chuàng)建。

5.1 在centos上配置

在centos上配置apache與svn集成,我們只需要修改apache的配置文件subversion.conf和ssl.conf即可。

對于ssl.conf文件,我們使用默認(rèn)的即可。但是如果我們要使用自己的ssl證書的話,可以修改ssl.conf文件的SSLCertificateFile和SSLCertificateKeyFile選項(xiàng)即可。

如果不使用自己的ssl證書的話,保持該文件默認(rèn)就行了,如下:

vim /etc/httpd/conf.d/ssl.conf

LoadModule ssl_module modules/mod_ssl.so

Listen 443

SSLPassPhraseDialog? builtin

SSLSessionCache???????? shmcb:/var/cache/mod_ssl/scache(512000)

SSLSessionCacheTimeout? 300

SSLMutex default

SSLRandomSeed startup file:/dev/urandom? 256

SSLRandomSeed connect builtin

SSLCryptoDevice builtin

<VirtualHost _default_:443>

ErrorLog logs/ssl_error_log

TransferLog logs/ssl_access_log

LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>

??? SSLOptions +StdEnvVars

</Files>

<Directory “/var/www/cgi-bin”>

??? SSLOptions +StdEnvVars

</Directory>

SetEnvIf User-Agent “.*MSIE.*” \

???????? nokeepalive ssl-unclean-shutdown \

???????? downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \

????????? “%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

而subversion.conf文件,只需要添加SSLRequireSSL選項(xiàng)即可。如下:

vim /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module???? modules/mod_dav_svn.so

LoadModule authz_svn_module?? modules/mod_authz_svn.so

<Location /repos>

?? DAV svn

?? SVNParentPath /data/ilanni

#一定要放在這行下面,否則會出現(xiàn)權(quán)限混亂的現(xiàn)象

? AuthzSVNAccessFile /data/svndata/authz

?? AuthType Basic

?? AuthName “Authorization Realm”

?? AuthUserFile /data/svndata/passwd

#告訴apache在authfile中所有的用戶都可以訪問。 如果沒有它,則只能第一個用戶可以訪問新建庫。

?? Require valid-user

?? SSLRequireSSL

</Location>

以上配置完畢后,我們來重啟apache,使用如下命令:

/etc/init.d/httpd restart

5.2 使用svn客戶端驗(yàn)證

現(xiàn)在我們來使用svn客戶端來連接svn服務(wù)器,還是以檢出ilannisvn倉庫為例,如下圖:

https://192.168.8.33/repos/ilannisvn

接受ssl驗(yàn)證。

通過上圖,我們可以很明顯的看出,我們已經(jīng)從svn服務(wù)器檢出svn的代碼。這說明svn已經(jīng)能通過https訪問。

5.3 在ubuntu上配置

在ubuntu上配置apache與svn集成,和centos上是差不多的,也是需要修改apache的配置文件subversion.conf和default-ssl.conf。

對于ssl.conf文件,我們使用默認(rèn)的即可。但是如果我們要使用自己的ssl證書的話,可以修改default-ssl.conf文件的SSLCertificateFile和SSLCertificateKeyFile選項(xiàng)即可。

如果不使用自己的ssl證書的話,保持該文件默認(rèn)就行了,如下:

sudo vim /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>

<VirtualHost _default_:443>

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

SSLEngine on

SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem

SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

<FilesMatch “\.(cgi|shtml|phtml|php)$”>

SSLOptions +StdEnvVars

</FilesMatch>

<Directory /usr/lib/cgi-bin>

SSLOptions +StdEnvVars

</Directory>

BrowserMatch “MSIE [2-6]” \

nokeepalive ssl-unclean-shutdown \

downgrade-1.0 force-response-1.0

BrowserMatch “MSIE [17-9]” ssl-unclean-shutdown

</VirtualHost>

</IfModule>

在ubuntu上啟用svn的https訪問方法和centos上還是有幾個地方不一樣的,不一樣的地方如下:

啟用ssl模塊,使用如下命令:

sudo a2enmod ssl

這條命令相當(dāng)于執(zhí)行了以下兩條命令,如下:

sudo ln -s /etc/apache2/mods-available/ssl.load /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/ssl.conf /etc/apache2/mods-enabled

如果沒有a2enmod指令,也可直接在apache2.conf中設(shè)置SSL模塊加載,如下:

LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so

啟用SSL站點(diǎn),使用如下命令:

sudo a2ensite default-ssl

最后我們再來編輯dav_svn.conf文件,加入SSLRequireSSL選項(xiàng)即可,如下:

sudo vim /etc/apache2/mods-available/dav_svn.conf

<Location /repos>

?? DAV svn

?? SVNParentPath /data/ilanni

#一定要放在這行下面,否則會出現(xiàn)權(quán)限混亂的現(xiàn)象

AuthzSVNAccessFile /data/svndata/authz

AuthType Basic

AuthName “Authorization Realm”

AuthUserFile /data/svndata/passwd

#告訴apache在authfile中所有的用戶都可以訪問。 如果沒有它,則只能第一個用戶可以訪問新建庫。

Require valid-user

SSLRequireSSL

</Location>

以上配置完畢后,我們來重啟apache,使用如下命令:

/etc/init.d/apache2 restart

5.4 使用svn客戶端驗(yàn)證

現(xiàn)在我們來使用svn客戶端來連接svn服務(wù)器,

以檢出ilannitest倉庫為例,如下圖:

https://192.168.8.34/repos/ilannitest

通過上圖,我們可以很明顯的看出,我們已經(jīng)從svn服務(wù)器檢出svn的代碼。這說明svn已經(jīng)能通過https訪問。

六、svn倉庫權(quán)限驗(yàn)證

以上幾個章節(jié)我們介紹了svn服務(wù)器的搭建與配置,以及svn服務(wù)器的訪問方法,這個章節(jié),我們再來驗(yàn)證下svn倉庫權(quán)限。

在第二章節(jié)中,我們配置的svn倉庫權(quán)限,如下:

這個權(quán)限控制是admin用戶組,對ilannisvn和ilannitest倉庫具有讀寫權(quán)限。

develop用戶組對ilannisvn倉庫具有讀寫權(quán)限,對ilannitest具有只讀權(quán)限,并且develop用戶組的test1用戶對ilannisvn倉庫下的config目錄只讀不能寫。

android用戶組對svn所有倉庫沒有任何訪問權(quán)限。

現(xiàn)在我們來驗(yàn)證admin用戶組的ilanniadmin用戶對svn倉庫的權(quán)限,如下:

svn co –username ilanniadmin –password 123456 https://192.168.8.33/repos/ilannisvn

svn co –username ilanniadmin –password 123456 https://192.168.8.33/repos/ilannitest

通過上圖,我們可以很明顯的看出ilanniadmin用戶具有對ilannisvn和ilannitest倉庫具有讀權(quán)限,下面我們來測試寫權(quán)限。

通過上圖,我們可以很明顯的看出ilanniadmin用戶具有對ilannisvn和ilannitest倉庫具有讀寫權(quán)限,這說明我們的權(quán)限配置是對的。

在此我們只驗(yàn)證admin用戶組,其他的權(quán)限請各位童鞋自行驗(yàn)證。

到此有關(guān)svn服務(wù)器搭建與配置的文章就全部結(jié)束。


轉(zhuǎn)載于:https://blog.51cto.com/7336056/1859834

總結(jié)

以上是生活随笔為你收集整理的Svn服务器的搭建与配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。