Apache 2.2 + Subversion 1.6.5 版本控管安裝筆記

公司的版本控管軟體,由 Visual SourceSafe 改用 Subversion,將此次安裝做個筆記,以免忘掉。

公司原本用的版本控管軟體是 Visual SourceSafe,現在打算改用 Subversion 來進行管理,因此將此次安裝心得記錄下來。

 

一、下載檔案

1. 首先,要下載 Apache:

http://httpd.apache.org/download.cgi

進入下載頁面後有 no ssl 及 open ssl 二種版本,在此以 no ssl 的版本為例,下載 apache_2.2.13-win32-x86-no_ssl.msi 這個檔案:

 

2. 下載 Subversion:

http://subversion.apache.org/download/

點選 subversion-1.6.17.zip下載 Windows 版本

2011-6-19 下午 03-39-44

 

3.  下載 TortoiseSVN:

http://tortoisesvn.net/downloads

 

 

二、安裝 Apache

上述 3 個檔案下載完畢後,接下來就是安裝啦,

1. 執行 apache 安裝程式,填入 Network Domain、Server Name 及 Email 資料,在下方有 2 個選項,可使用預設 Port 80,或是 Port 8080,在此以預設值進行安裝。

 

2. 開啟 Apache 安裝目錄下 Apache2.2\conf\httpd.conf 檔案,將下列 2 行前方的 # 移除:

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

加入以下兩行 (檔案路徑請依 Subversion 實際安裝位置調整):

LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"

註:這 2 行要放在 mod_dav.so 之後

在檔案最後面加入

<Location />
  DAV svn

  #控管檔的存放位置根資料夾
  SVNParentPath "D:/SVNProj"

  # how to authenticate a user
  AuthType Basic
  AuthName "Subversion repository"

  #進行帳號驗證時的帳號、密碼資料
  AuthUserFile "D:/SVNProj/passwd.ini"

  # only authenticated users may access the repository
  #操作時要進行帳號驗證,拿掉此行就不會進行驗證
  Require valid-user

  # our access control policy
  # authz.ini 是設定帳號對各 Project 可讀/寫權限的設定檔
  AuthzSVNAccessFile "D:/SVNProj/authz.ini"
</Location>

 

三、安裝 Subversion

1. 將下載的檔案直接解壓縮至 C:\Program Files\Subversion

2. 設定 Windows Path 環境變數,指到 C:\Program Files\Subversion\bin

 

四、安裝 TortoiseSVN

1. 執行安裝檔進行安裝

2. 安裝好後,建議勾選 Use "_svn" instead of ".svn" directories  (參考原因)

 

五、SVN Project 資料夾、登入密碼、權限設定:

以下操作皆進入 命令提示字元 模式操作

1. 建立 SVN Project:

d:
cd\
md SVNProj
cd SVNProj
C:\Program Files\Subversion\bin\svnadmin create Project1

2. 設定登入帳號、密碼:

"C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd.exe" -c passwd.ini [帳號]

若要設定多個帳號,則重複做此動作,並將產生的資料放到 D:\SVNProj\passwd.ini   (在 Apache2.2\conf\httpd.conf 中要設定讀取此檔的帳密資料)

3. 權限設定:

將以下內容存在 D:\SVNProj\authz.ini  (在 Apache2.2\conf\httpd.conf 中要設定讀取此檔)

# 先定義群組
[groups]
developer = user1,user2,user3
art = user4
everyone = *

# 預設拒絕所有人進入瀏覽
[/]
* =
# 設定儲存庫訪問權限,語法:[儲存庫:專案路徑]

[Project1:/]
@developer=rw  #可讀寫
@art=r               #僅可讀取
 

以上都設定好之後,重啟 Apache 讓設定生效,此時可以用 http://127.0.0.1/Project1/ 測試是否可連上。

或是在檔案總管點滑鼠右鍵選 TortoiseSVN --> repo-browser 後輸入 http://127.0.0.1/Project1/ 看是否可連上。

 

若要變更連線 Port 為 8080,則修改 Apache2.2\conf\httpd.conf,將 Listen 80 改為 Listen 8080 再重啟 Apache 即可。

 

註:
1.若在 Vista/Windows7 上有 UAC 機制的系統上安裝 Apache,於安裝時須先關閉 UAC,若啟動後產生錯誤訊息或無法正常連線,則關閉 UAC 後再啟動即可(啟動完後即可再開啟 UAC)
2.要建立 SSL 連線須產生憑證,產生方式請參考如何在 Win32 安裝 Apache 2.0 with OpenSSL + Subversion,文中是針對 Apache 2.0 來做設定,所以憑證檔存放位置不同, Apache 2.2 放在 Apache2.2\conf 下即可。

 

參考資料: