相關檔案下載 | |
apache_2.0.59-win32-x86-no_ssl.msi | 當做伺服器,這裡一定要用 2.0.x 版 |
svn-win32-1.4.3.zip |
SVN程式
|
python-2.4.4.msi |
Python程式
|
mod_python-3.2.10.win32-py2.4-apache2.0.exe | 配合上面的 Apache 及 Python 版本,並抓取最新版 |
svn-python-1.4.3.win32-py2.4.exe | 透過 Python 操控 SVN |
pysqlite-2.5.6.win32-py2.4.exe | 透過 Python 操控 Sqlite |
clearsilver-0.9.14.win32-py2.4.exe | 樣版引擎 |
SilverCity-0.9.7.win32-py2.4.exe | 程式碼上色模組 |
ez_setup.py | setuptools 模組 |
trac-0.10.3.win32.exe |
Trac程式
|
TortoiseSVN-1.7.10.23359-x64-svn-1.7.7.msi |
TortoiseSVN程式
|
LanguagePack_1.7.10.23359-x64-zh_TW.msi |
TortoiseSVN中文語言套件
|
svn2cl-0.7-win2 |
安排目錄結構
把相關的程式放在 C:\AppServ
底下,而檔案庫則放在 C:\Repository
底下 |
C:
|
|-
AppServ (伺服器相關程式)
| |
| |- Apache2 ( Apache 的主要程式檔)
| |
| |- python ( Python 的主要程式檔)
| |
| |- svn ( Subversion 的主要程式檔)
| |
| |- trac ( Trac 的相關批次程式檔)
|
|-
Repository (檔案庫)
| |
| |- svn
| |
| |-
trac |
安裝 Apache 2 |
1. 有使用 IIS 的話,請先把 IIS 停掉。然後執行 apache_2.0.59-win32-x86-no_ssl.msi |
2. 把 Apache HTTP Server 2.0.xx 的 Install to 改到 C:\AppServ ,這樣下方 Apache Runtime 的 Install to 會自動變成 C:\AppServ\Apache2 |
3. 在 C:\AppServ\Apache\conf\httpd.conf 中把 Port 80 改成 Port 8000 (或其他不影響系統運作的數字) ,然後重新啟動 Apache 及 IIS |
4. 把 C:\AppServ\Apache2\bin 加入系統變數 PATH 裡,這樣方便到時候直接使用指令來控制 Apache |
安裝 Subversion |
1. 解開 svn-win32-1.4.3.zip ,將 svn-win32-1.4.3 這個資料夾重新命名為 svn (裡面應該有 bin 等資料夾) ,並將它移至 C:\AppServ 下 |
2. 將 C:\AppServ\svn\mod_authz_svn.so 及 C:\AppServ\svn\mod_dav_svn.so 兩個檔案複製到 C:\AppServ\Apache2\modules 下 |
3. 將 C:\AppServ\svn\bin 加到 PATH 系統環境變數裡 |
4.
在系統環境變數裡加上以下兩個變數:
APR_ICONV_PATH
= C:\AppServ\svn\iconv
SVN_EDITOR = notepad.exe
(或其他慣用的文字編輯器執行檔絕對路徑) |
安裝Python 主程式 |
1. 安裝位置改在 C:\AppServ\python 底下,其他就使用預設值即可 |
2. 將 C:\AppServ\python 加入 PATH 系統環境變數裡 |
安裝Trac相關模組執行 |
執行 svn-python-1.4.3.win32-py2.4.exe |
執行 pysqlite-2.5.6.win32-py2.4.exe |
執行 clearsilver-0.9.14.win32-py2.4.exe |
執行 trac-0.10.3.win32.exe |
執行 SilverCity-0.9.7.win32-py2.4.exe |
安裝mod_python 模組 |
執行 mod_python-3.2.10.win32-py2.4-apache2.0.exe ,一樣是按照預設值安裝;但是當問到「 Where is Apache installed? 」時要選擇「 C:\AppServ\Apache2 」,這時安裝程式會把 mod_python.so 複製到 C:\AppServ\Apache2\modules 底下 |
安裝setuptools 模組 |
1. 直接點兩下 ez_setup.py 執行即可 |
安裝 TortoiseSVN |
1. 執行 TortoiseSVN-1.7.10.23359-x64-svn-1.7.7.msi ,安裝完成後暫時不要重開機 |
2. 執行 LanguagePack_1.7.10.23359-x64-zh_TW.msi ,這時才需要重開機 |
安裝 Trac Plugins | |
webadmin安裝 | |
easy_install http://svn.edgewall.org/repos/trac/plugins/0.10/webadmin | 管理 Trac 專案相關設定的套件 |
AccountManager安裝 | |
easy_install https://trac-hacks.org/svn/accountmanagerplugin/0.10 | 管理 Trac 專案的成員帳號 |
IniAdmin安裝 | |
easy_install http://trac-hacks.org/svn/iniadminplugin/0.10 | 直接在 Web 介面上調整 trac.ini |
Apache 使用者設定 |
C:\Repository>htpasswd
-c project-users.db admin
Automatically
using MD5 format.
New
password: *****
Re-type
new password: *****
Adding password for user
admin |
建立
website 帳號
開發的是網站專案,會需要自動更新測試環境的檔案時,就需要再建立一個
website 帳號: |
C:\Repository>htpasswd
project-users.db website
Automatically
using MD5 format.
New
password: ******
Re-type
new password: ******
Adding password for user
website
|
模組設定 |
以文字編輯器開啟 C:\AppServ\Apache2\conf\httpd.conf |
#LoadModule dav_module modules/mod_dav.so |
將上面的註解 ( # 字號) 去除,然後在整個 LoadModule 區段的下方加入以下設定 |
#
For Subversion
LoadModule
dav_svn_module modules/mod_dav_svn.so
LoadModule
authz_svn_module modules/mod_authz_svn.so
#
For Trac
LoadModule python_module
modules/mod_python.so |
Apache 重新啟動時,就會載入 DAV 、 SVN 和 Python 等模組 |
SVN設定
假如希望某個專案(windows專案)的svn的路徑是長成這樣:
http://localhost:8000/svn/windows
|
在 httpd.conf 的最後面加上以下設定 |
<Location
/svn>
DAV
svn
SVNParentPath
C:/Repository/svn
#
<LimitExcept GET PROPFIND OPTIONS REPORT>
AuthType
Basic
AuthName
"CompanyName"
AuthUserFile
"C:/Repository/project-users.db"
Require
valid-user
#
</LimitExcept>
</Location> |
Trac
設定
如果希望用已下網址來連到某個專案(windows專案)的Trac管理系統 : http://localhost:8000/trac/windows |
在 httpd.conf 的最後面加上: |
<Location
/trac>
SetHandler
mod_python
PythonHandler
trac.web.modpython_frontend
PythonOption
TracEnvParentDir C:/Repository/trac
PythonOption
TracUriRoot /trac
</Location>
<LocationMatch
"/trac/[^/]+/login">
AuthType
Basic
AuthName
"CompanyName"
AuthUserFile
"C:/Repository/project-users.db"
Require
valid-user
</LocationMatch> |
建立 Subversion 專案 |
要建立一個名為windows的專案,那麼就在命令提示列視窗中輸入以下指令
C:\Repository\svn>svnadmin
create windows
這樣就能建立出屬於 windows
這個專案的檔案庫了
註:先前提過的權限設定改由 Apache
來控管,因此不用再修改 conf
底下的檔案了 |
設定 post-commit |
post-commit 簡單來說就是在本地端 Commit 後,會自動執行的 hook 機制;通常是用來記錄更新的 log 或是發送 Email,這裡則是用來自動更新測試環境的 Web 檔案 |
假設 D:\wwwroot\windows 就是我們所要更新的目的地, IIS 是以它做為執行的根目錄;當我們在本地端開發的檔案Commit 後,就會同步這裡的檔案 |
把以下文字存成
post-commit.bat :
@ECHO
OFF
SET
SVN="C:\\appserv\\svn\\bin\\svn.exe"
SET
DIR="C:\\wwwroot\\windows\\"
CALL %SVN% update %DIR%
--username website --password websitepassword --non-interactive
|
然後存到
C:\Repository\svn\windows\hooks\
下即可,其中 website
帳號在前一篇說明裡已經建立了
註:這裡也可以更新記錄存到 log
檔案裡或是發送 Email
給相關組員,不過這邊暫時不打算弄得太複雜 |
建立 Trac 專案 |
建立Trac
的資料庫
1.
切換到 C:\AppServ\python\Scripts
路徑,建立一個名為 windows
的 trac 專案。
C:\Appserv\python\Scripts>python
trac-admin C:\Repository\trac\windows initenv |
接著會出現以下提示文字,請依照下面的建議操作:
Project Name [My
Project]>windows (輸入專案名稱,不必和目錄名稱相同) |
Database connection string [sqlite:db/trac.db]> (直接按 Enter 使用預設值) |
Repository type [svn]> (直接按 Enter 使用預設值) |
Path to repository [/path/to/repos]> C:\Repository\svn\windows (輸入Subversion 專案檔案庫位置) |
Templates directory [C:\Appserv\python\share\trac\templates]> (直接按 Enter 使用預設值) |
使用者與群組設定
|
設定預設使用者 |
C:\Appserv\python\Scripts>python trac-admin C:\Repository\trac\windows permission add admin TRAC_ADMIN |
這樣會將 admin 加入 Trac 專案管理者 |
設定不讓匿名使用者在 Trac 專案有任何權限 |
C:\Appserv\python\Scripts>python trac-admin C:\Repository\trac\windows permission remove anonymous '*' |
註:之前我測試用 * 號可以刪掉所有權限,不曉得什麼時候改成要用單引號把 * 號包起來 |
建立一個 developer 群組,同時給它需要的權限 (請自行決定相關權限) : |
C:\Appserv\python\Scripts>python trac-admin C:\Repository\trac\windows permission add developer WIKI_VIEW WIKI_CREATE WIKI_MODIFY SEARCH_VIEW TICKET_APPEND TICKET_CREATE TICKET_VIEW TIMELINE_VIEW ROADMAP_VIEW |
註:如果 developer 沒有對應到 Apache 所建立的帳號時,它對 Trac 而言就是一個群組 |
相關
Plugins 設定
建立好 Trac
資料庫後,就要在專案裡啟用 WebAdmin
和 AccountManager 這兩個
Plugins 。請用文字編輯器打開
C:\Repository\trac\windows\conf\trac.ini
,把以下文字貼到 trac.ini
的最下方: |
[account-manager]
password_file
= C:\Repository\project-users.db
password_store
= HtPasswdStore
[components]
acct_mgr.admin.accountmanageradminpage
= enabled
acct_mgr.api.accountmanager
= enabled
acct_mgr.htfile.htpasswdstore
= enabled
acct_mgr.web_ui.accountmodule
= enabled
acct_mgr.web_ui.loginmodule
= enabled
acct_mgr.web_ui.registrationmodule
= enabled
trac.web.auth.loginmodule
= enabled
iniadmin.iniadmin.iniadminplugin
= enabled
webadmin.* = enabled
|
這樣到時候用 admin
登入專案時,就能夠使用 Admin
功能了 (包含
WebAdmin 、
AccountManager 和
IniAdmin )
補充:如果用 admin
登入後,還是看不到 Admin
功能的話,請重新啟動 Apache
註:這時的 logout
功能因為前面 httpd.conf
設定的關係,所以只有重新載入 Trac
的動作而無法真正登出 |
重點總結 |
1.建立 Subversion 檔案庫並且配置 post-commit |
2.建立 Trac 資料庫,並配置權限與相關 plugins |
以上便是完整的 Trac/Subversion 專案建置方式,每新增一個專案都要做一次 |