1. 安裝 Subversion 1.4
http://subversion.tigris.org/
http://tortoisesvn.tigris.org/
安裝完成後,設定「系統環境變數」Path 加入 c:\Program Files\Subversion\bin 目錄
2. 安裝 Apache 2.0 with OpenSSL
http://httpd.apache.org/download.cgi
下載這個檔 apache_2.0.59-win32-x86-openssl-0.9.7j.msi
安裝時要用「自訂安裝」與用 Port 8080 不要自動啟動影響原本 IIS 的運作
安裝完成後,先編輯設定檔
C:\Program Files\Apache Group\Apache2\conf\httpd.conf
LoadModule dav_module modules/mod_dav.so
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"
LoadModule ssl_module modules/mod_ssl.so
# 新增下面設定到 httpd.conf 設定檔的最下方
-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=
<Location /repos>
DAV svn
SVNParentPath "C:/SVNRepos"
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile "C:/SVNRepos/passwd.ini"
# only authenticated users may access the repository
Require valid-user
# For any operations other than these, require an authenticated user.
#<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require valid-user
#</LimitExcept>
# our access control policy
AuthzSVNAccessFile "C:/SVNRepos/authz.ini"
</Location>
-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=
C:\Program Files\Apache Group\Apache2\conf\ssl.conf
將所有 443 改成 3443
產生 SSL Cert & Key
參考:http://tud.at/programm/apache-ssl-win32-howto.php3
建立 C:\Program Files\Apache Group\Apache2\conf\ssl 目錄
建立 C:\Program Files\Apache Group\Apache2\conf\ssl.key 目錄
建立 C:\Program Files\Apache Group\Apache2\conf\ssl.crt 目錄
下載 http://tud.at/programm/openssl.cnf 到 C:\Program Files\Apache Group\Apache2\conf\ssl 目錄下
進入指令模式執行以下指令:
# 註解:密碼都用 0000 即可
openssl req -config openssl.cnf -new -out server.csr
Country Name (2 letter code) []:TW
State or Province Name (full name) []:Taiwan
Locality Name (eg, city) []:Taipei
Organization Name (eg, company) []:My Company Inc.
Organizational Unit Name (eg, section) []:R&D Team
Common Name (eg, your websites domain name) []:svn.mydomain.com
Email Address []:svn@mydomain.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:0000
openssl rsa -in privkey.pem -out server.key
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365
openssl x509 -in server.crt -out server.der.crt -outform DER
將 server.crt 移至 C:\Program Files\Apache Group\Apache2\conf\ssl.crt 目錄
將 server.key 移至 C:\Program Files\Apache Group\Apache2\conf\ssl.key 目錄
測試一下 Apache2 with SSL 有沒有成功
C:\Program Files\Apache Group\Apache2\apache.exe -D SSL
註冊 Apache2 服務
cd C:\Program Files\Apache Group\Apache2\bin
Apache.exe -k install
Apache.exe -k config -D SSL
啟動 Apache 2
Apache.exe -k start
3. 建立 SVN Repository 環境
建立 D:\SVNRepos 目錄
建立 Apache 的認證的密碼檔 passwd.ini
d:
cd \SVNRepos
"c:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -c passwd.ini [帳號]
或
"c:\Program Files\Apache Group\Apache2\bin\htpasswd.exe" -bc passwd.ini [帳號] [密碼]
建立 Subversion 的權限檔 authz.ini
-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=
# 先定義群組
[groups]
pm = user1
developers = user1,user2,user3
everyone = *
# 預設拒絕所有人進入瀏覽
[/]
* =
-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=
建立第一個 SVN Repository
d:
cd \SVNRepos
svnadmin create project1
備註:不用再修改 project1/conf/svnserve.conf 檔案了,因為都定義在 Apache 的 httpd.conf 裡了
修改 Subversion 的權限檔 authz.ini
新增下列幾行到 authz.ini 最下面
-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=
# 語法 ==> 〔儲存庫:專案路徑〕
# 要讓 PM 能 Import 最初始的專案,所以要全部能寫入
[project1:/]
@pm=rw
@developers=r
# 開發人員只能 commit 到 trunk
[project1:/trunk]
@developers=rw
# 只有 PM 可以決定何時該 Release 版本
[project1:/tags]
@pm=rw
# 只有PM 才可以決定是否進行分支開發,若分支開發需要再進行設定權限
[project1:/branch]
@pm=rw
-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=-*=
匯入專案資料
- 建立 Working Folder
D:\Projects
D:\Projects\Project1
D:\Projects\Project1\branches - 先預留空白
D:\Projects\Project1\tags - 先預留空白
D:\Projects\Project1\trunk - 將所有一開始要開發資料放到這裡!
D:\Projects\Project1\trunk\docs - 將所有開發文件放到這裡!
D:\Projects\Project1\trunk\Website - 將網站開發的原始檔放到這裡!
- 匯入專案到 Repository
cd D:\Projects\Project1
svn import . https://svn.mydomain.com:3443/repos/project1/
測試網頁瀏覽SVN儲存庫
https://svn.mydomain.com:3443/repos/project1/