SSH+SVN示例
這種模式需要提前設定SSH服務,通過SSH服務調用SVN服務程式,是以svnserve不需要手動啟動,用戶端通過svn+ssh://centos.example.com/svn/project1通路。
用戶端程式通過ssh程式連接配接版本庫主機,使用SSH認證(伺服器系統使用者名與密碼),服務端接到某使用者的ssh連接配接後會以該使用者的身份啟動svnserve。
這種模式svnserve.conf還是可以進行權限控制的。
1. 服務端啟動SSH服務
[root@centos6 ~]# service sshd start
2. 服務端建立版本庫
[root@centos6 ~]# mkdir /var/svn
[root@centos6 ~]# svnadmin create /var/svn/project1
[root@centos6 ~]# svn import /shells file:///var/svn/project1 -m "Initial DATA"
3. 用戶端通路效果如圖:
1)通過TortoiseSVN圖形工具通路:
2)通過指令行通路(一台rhel6.2系統)
Apache+SVN
<b></b>
Apache是非常流行的Web伺服器軟體。它可以運作在幾乎所有的計算機平台上。通過Apache釋出Subversion的版本庫,使得使用者可以通過HTTP協定通路版本庫。
以下為使用Apache釋出Subversion版本庫的若幹理由:
1.Subversion可以使用Apache自身內建的多種認證方式。
2.不需要建立系統使用者。
3.完善的Apache日志可。
4.可以通過SSL加密網絡傳輸的資料。
5.HTTP(S)可以穿越企業防火牆。
6.堅定地通過浏覽器通路版本庫。
準備工作:安裝Apache,加載mod_dav及mod_dav_svn子產品,Apache需要這兩個子產品管理Subversion版本庫。
本文以yum方式安裝這些軟體,環境為CentOS6.2。
[root@centos6 ~]# yum -y install httpd
[root@centos6 ~]# yum -y install mod_dav_svn
安裝完成後你可以通過以下方法檢視dav子產品是否加載成功:
vim /etc/httpd/conf/httpd.conf
檢視是否包含LoadModule dav_module modules/mod_dav.so
vim /etc/httpd/conf.d/subversion.conf
檢視是否包含LoadModule dav_svn_module modules/mod_dav_svn.so
如果你還需要Subversion自帶的基于目錄的權限控制的話,可以通過加載mod_authz_svn實作。
接下來通過修改Apache配置檔案實作網絡化版本庫:
root@centos6 ~]# mkdir /var/svn
[root@centos6 ~]# 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 //加載子產品
# //#符号開頭的為注釋行
# a) readable and writable by the 'apache' user, and
# //預設Apache啟動使用者為apache,是以需要apache使用者對版本庫有讀寫權限
# b) labelled with the 'httpd_sys_content_t' context if using
# SELinux
# //如果開啟了SELinux版本庫需要有httpd_sys_content_t這樣的安全上下文
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
# # cd /var/www/svn
# # svnadmin create stuff
# # chown -R apache.apache stuff
# # chcon -R -t httpd_sys_content_t stuff //以上注釋行是配置文檔提供的操作示例
//注意我們的版本庫在/var/svn目錄下
<Location /svn> //Location可以根據特定的URL執行特定的處理
//這裡當使用者的RUL以/svn開始時,将控制權交于DAV處理(http://hostname/svn/...)
DAV svn
SVNParentPath /var/svn //通過SVNParentPath指定所有版本庫的主目錄(釋出所有版本庫)
//也可以通過SVNPath指定某個特定版本庫的路徑(釋出特定版本庫)
AuthType Basic //認證方式
AuthName "Please Input passwod" //提示字元
AuthUserFile /var/svn/.pass //帳号檔案的路徑,為了安全隐藏該檔案
Require valid-user //指定僅有效使用者可以通路
</Location>
[root@centos6 ~]# chown -R apache.apache /var/svn/ //修改權限
[root@centos6 ~]# chcon -R -t httpd_sys_content_t /var/svn //僅在SELinux開啟時使用
[root@centos6 ~]# htpasswd -c /var/svn/.pass jerry //建立帳号檔案,并添加使用者jerry
[root@centos6 ~]# service httpd start
用戶端通路效果如圖:
本文轉自super李導51CTO部落格,原文連結:http://blog.51cto.com/superleedo/1888843 ,如需轉載請自行聯系原作者