天天看點

svnserve+ssh伺服器Apache+svn伺服器建立

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目錄下 

&lt;Location /svn&gt;                         //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                //指定僅有效使用者可以通路 

&lt;/Location&gt; 

    [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 ,如需轉載請自行聯系原作者

繼續閱讀