熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows服務器 >> 正文

實戰:建立windows下版本控制服務器

2022-06-13   來源: Windows服務器 

  基本安裝配置

   Web務器的選擇

  Subversion 建立在一個可移殖的 layer 稱為 APR (Apache Portable Runtime 鏈接庫) 上 這表示 Subversion 應該可以在任何可以執行 Apache 的 httpd 服務器的操作系統上 Windows Linux 所有的 BSD 分支 Mac OS X Netware目前使用最為廣泛的Web服務器是Apache 和IIS兩者都可以工作在Windows Server 其中Apache 和Subversion的配置最為簡單安全高效所以本文選擇使用Apache 服務器的 版本作為Web服務器

   本文使用軟件版本

  以下是本文件使用的作業環境與軟件版本

  * Windows Server R

  * Apache HTTP Server v

  * Subversion v

   安裝配置Apache服務器

  在到 下載 Apache HTTP Server 版 for Windows 的版本筆者使用的版本是 apache_winxno_sslmsi

  安裝過程很簡單就不贅述了這裡介紹幾個注意事項

  但安裝之前請先檢查你的服務器是否安裝 IIS由於 Apache 預設使用 端口會跟 IIS 的網站沖突你必須把 IIS 的 Web 站台關閉再安裝 Apache HTTP服務器

  注意如果使用Windows XP的話沒有安裝SP將會導致不正常的網絡傳輸從而搞壞你的版本庫

  Apache低於的版本不能與Subversion 一起工作因為Apache低於的Windows版本的編譯存在問題

   安裝 Subversion

  在 下載最新版的 Subversion筆者下載的是svnsetupexe安裝過程比較簡單這裡筆者就不贅述了安裝完成後在Dos命令行下使用命令svn –version檢查如果出現圖 界面表示安裝成功

  

  圖 檢查svn是否安裝成功

   復制和修改Apache服務器配置文件

  通過 Http 協議訪問版本庫是 Subversion 的亮點之一使用 Http 協議意味著只需要打開浏覽器輸入 URL 即可輕松的浏覽整個版本庫由於 Subversion 需要版本化的控制因此標准的 Http 協議不能滿足需求要讓 Apache 與 Subversion 協同工作需要使用 WebDAV(Web 分布式創作和版本控制)WebDAV 是 HTTP 的擴展關於 WebDAV 的規范和工作原理可以參考 IETF RFC 為了使 Subversion 與 dav 模塊通信需要安裝 mod_dav_svn 插件可以在 Subversion 的安裝目錄中找到將其拷貝到 Apache 安裝目錄的 modules 文件夾下接下來就是配置 Apache 的 文件讓 Apache 在啟動的時候加載上述模塊步驟如下

  * 把svn/bin/目錄下的 mod_dav_svnso mod_authz_svnso復制到Apache服務器的/modules/目錄下

  * 把 SVN/bin/目錄下所有的dll鏈接文件復制到 Apache服務器/bin/目錄下

  * 修改Apache服務器的配置文件

  先找到以下兩行

  

  #LoadModule dav_module modules/mod_davso #LoadModule dav_fs_module modules/mod_dav_fsso

  把前面dav_svn_module的 # 字符刪除然後把下面幾行文字加到這群 LoadModule 指令的最後

  

  LoadModule dav_svn_module modules/mod_dav_svnso LoadModule authz_svn_module modules/mod_authz_svnso

  然後最後加入幾行

  

  <Location /svn>
DAV svn
SVNParentPath d:\svn
</Location>

  表-是apache服務器配置文件中svn相關文件的解釋

  

   建立版本庫目錄

  建立一個 Subversion 的版本庫出乎意料地簡單 Subversion 所提供的 svnadmin工具 有個專門處理這件事的子命令 要建立一個新的檔案庫 只要執行命令

  

  $ svnadmin create path/to/repos

  這會在目錄 path/to/repos 裡建立一個新的檔案庫使用系統命令建立版本庫目錄如圖

  

  圖 使用系統命令建立版本庫說明 svnadmin 命令是系統管理員最好的朋友 除了可以建立 Subversion 檔案庫 這個程序還可以讓你對檔案庫進行幾種維護動作 svnadmin 常用子命令如表-

  

  表- svnadmin 常用子命令

   添加版本庫文件

  使用如下命令建立版本庫文件

  

  md tmp cd\tmp md ProjectA md ProjectA\trunk md ProjectA\branches md ProjectA\tags svn import //localhost/svn m Initial repository layout

   重新啟動Apache服務器進行測試

  配置完畢後重新啟動 Apache打開浏覽器輸入//服務器IP/repos 將會看到如圖畫面

  

  圖 成功建立版本庫界面

  使用SSL安全連接

  Apache服務器缺省並不支持SSL但是你可以從其他地方下載安裝

   首先你需要一些文件來開啟SSL你可以在找到這些包只需要解壓縮這些文件然後將mod_sslso拷貝到Apache的modules目錄將文件opensslexe拷貝到bin目錄將文件conf/nf拷貝到Apache的conf目錄

   使用文本編輯器打開Apache的conf目錄的nf

   注釋掉(使用#)下面幾行

  

  DocumentRoot c:/apache/htdocs ServerName : ServerAdmin ErrorLog logs/error_log TransferLog logs/access_log

   此行

  

  SSLCertificateFile conf/sslcrt/servercrt 改為 SSLCertificateFile conf/ssl/myservercert 此行 SSLCertificateKeyFile conf/sslkey/serverkey 改為 SSLCertificateKeyFile conf/ssl/myserverkey 此行 SSLMutex file:logs/ssl_mutex 改為 SSLMutex default

   刪除下面兩行

  

  <IfDefine SSL>
</IfDefine>

   打開Apache配置文件()並且去掉此行的注釋

  

  #LoadModule ssl_module modules/mod_sslso

   Openssl需要一個配置文件你可以從下載一個正在使用的請注意f類型的文件盡管是普通的文本文件Windows對這種文件會特別處理!

   然後你需要創建一個SSL證書為此打開一個命令行窗口進入apache目錄(例如C\program files\apache group\apache然後輸入下面的命令

  

  bin\openssl req config bin\f new out myservercsr

  你會被訊問密語請不要使用簡單的單詞而是使用整段話例如一段詩越長越好你也需要輸入server的URL其他所有問題都是可選的但是我們建議你最好輸入這些信息

  通常會自動產生privkeypem文件但是如果沒有請輸入下面的命令生成它

  

  bin\openssl genrsa out privkeypem

  然後輸入這個命令

  

  bin\openssl rsa in privkeypem out myserverkey

  並且輸入(在同一行)

  

  bin\openssl x in myservercsr out myservercert req signkey myserverkey days

  這樣會創建一個在天裡過期的證書最後輸入

  

  bin\openssl x in myservercert out myserverdercrt outform DER

  這些命令在Apache目錄(myserverdercrtmyservercsrmyserverkeyrnd privkeypemmyservercert)裡創建了一些文件拷貝這些文件到目錄conf/ssl(例如C\program files\apache group\apache\conf\ssl)-如果這個目錄不存在你需要首先創建一個

   重啟apache服務

   將你的浏覽器指向https://servername/svn/project ……

   關閉不安全連接方法

  你設置了SSL讓你的版本庫更安全你一定希望關閉普通的非ssl訪問為此你需要在Subversion的<Location> 增加指示SSLRequireSSL一個<Location>實例就像這個樣子

  

  <Location /svn>
DAV svn
SVNParentPath D:\SVN
SSLRequireSSL
AuthType Basic
AuthName Subversion repositories
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require validuser
</Location>

  總結

  到此為止在版本控制工具Subversion在Windows Server 下的安裝基本介紹完了如果您希望獲得更好的安全性能可以考慮使用使用Windows域認證


From:http://tw.wingwit.com/Article/os/fwq/201311/10309.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.