一基本安裝配置
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