這里我們要構建一個基于Trac的項目管理系統。代碼管理使用subversion,項目管理使用Trac。所需要的軟件包如下:
§
Trac 0.10,Trac程序
§
Apache 2.0.59,Web服務器
§
subversion 1.4.3,代碼版本管理工具
§
Python 2.4.4,Python解釋器
§
mod_python,Python的Apache模塊
§
ClearSilver 0.9.4,Python的模版工具
§
mxDateTime 2.0.3,Python必須庫文件
很遺憾subversion現在仍然不支持最新的Apache 2.2系列,因此我們只能使用Apache 2.0系列。而pyPgSQL 2.5.1版和ClearSilver 0.9.4不支持Python 2.5,因此只能用 Python 2.4。
1 安裝Apache和subversion
在Apache官方網站上下載2.0.59版的msi安裝包,執行即可。為方便起見,建議將Apache安裝到根目錄下,例如
D:\Apache。安裝時的一些細節可以參考這篇文章。安裝完畢后用瀏覽器訪問 http://localhost/ ,如能看到Apache的起始頁面即安裝成功。
從subversion上下載zip包解壓縮即可,目前最新版本為svn-win32-1.4.3.zip。假設解壓到 D:\svn下。
然后將subversion與Apache集成在一起(也可參考這篇文章)。將
D:\svn\bin 下的以下文件復制到
D:\Apache\Apache2\modules 目錄下:
§
mod_authz_svn.so
§
mod_dav_svn.so
將 D:\svn\bin 下的以下文件復制到
D:\Apache\Apache2\bin 目錄下:
§
libdb44.dll
§
intl3_svn.dll
然后建立代碼倉庫目錄 D:\repos。
Create Repository
D:\> svnadmin create d:\repos
Create
skeleton repository structure in d:\temp\project
Example:
/project
/vendor
/tags
/trunk
files
/projectname
/branches
/tags
/trunk
files
Build
Repository Tree
D:\> svn import d:\temp\project file:///d:/repos -m "Initial Load"
Create
local sandbox
D:\> svn checkout file:///d:/repos d:\project
然后修改
D:\Apache\Apache2\conf\httpd.conf,查找下面這一行,去掉前面的 # 號。
LoadModule dav_module
modules/mod_dav.so
然后在其附近添加以下這一行:
LoadModule dav_svn_module
modules/mod_dav_svn.so
之后在
httpd.conf 的末尾添加以下內容:
<Location /repos>
DAV svn
SVNParentPath
D:/repos
</Location>
然后重新啟動Apache。
2 安裝Python、mod_python和SVN
binding
從Python官方網站下載Python
2.4的msi安裝包進行安裝,假設安裝到D:\Python24目錄下。
從mod_python的下載頁面 上下載mod_python
3.3.0b的Win32版(mod_python-3.3.0b.win32-py2.4-Apache2.0.exe)。安裝時它會問你Apache的安裝位置,輸入
D:\Apache\Apache2 即可。
最后打開
D:\Apache\Apache2\conf\httpd.conf,查找
LoadModule,加入下面這一行:
LoadModule python_module
modules/mod_python.so
然后重新啟動Apache。
最后要安裝subversion
binding使Python支持subversion。到剛才下載subversion的地方 下載
svn-win32-1.4.3_py2.4.exe 文件并安裝。
3
Install SQLite
http://www.sqlite.org
復制SQLite3.exe為d:\python\sqlite.exe
Install PySQLite
http://pysqlite.sourceforge.net
自動安裝PySQLite
4 安裝ClearSilver和mxDateTime
在ClearSilver的下載頁面選擇0.9.4的py2.4版下載
(win32/clearsilver-0.9.14.win32-py2.4.exe)并安裝。
Trac官方文檔中雖然沒有說明mxDateTime,但是建立項目時Trac會報錯,要求你安裝mxDateTime庫。從mxDateTime主頁下載并安裝。
5 安裝Trac
最后終于輪到主角Trac出場了。在Trac下載頁面上下載 Trac安裝程序(trac-0.10.3.win32.exe)并安裝。
然后建立項目目錄
D:\projects。
然后打開
D:\Apache\Apache2\conf\httpd.conf,在最末尾添加以下內容:
<Location /projects>
SetHandler
mod_python
PythonHandler
trac.web.modpython_frontend
PythonOption
TracEnvParentDir D:/projects
PythonOption
TracUriRoot /projects
</Location>
然后重新啟動Apache,訪問 http://localhost/projects/,你會看到Available Projects字樣,則說明安裝成功。至此安裝全部完畢。
建立項目
下面我們要建立一個實際開發中使用的項目。我們為這個項目命名為 hello。
首先要建立一個代碼倉庫。打開命令行,輸入以下命令:
D:
cd D:\repos
md hello
cd hello
D:\svn\bin\svnadmin create .
然后打開瀏覽器,訪問 http://localhost/repos/hello/ 。如果你上面的設置都正確,你將會看到下面的內容:
Revision 0: /
----------------------------------------------
Powered by Subversion version 1.4.3 (r23084).
即說明代碼倉庫建立成功,而 http://localhost/repos/hello/ 就是代碼倉庫的 URL。
然后建立Trac項目。打開命令行,輸入以下命令:
D:
cd D:\projects
D:\Python24\python.exe
D:\Python24\Scripts\trac-admin hello initenv
trac-admin 為Trac的管理工具,hello為項目名,initenv命令指示Trac新建一個項目。然后按照下面的內容輸入:
Project Name [My Project]> Hello
World
Database connection string
[sqlite:db/trac.db]> sqlite:db/trac.db
Repository type [svn]> svn
Path to repository
[/path/to/repos]> D:/repos/hello
Templates directory
[D:\Python24\share\trac\templates]>
如果創建失敗,則需要刪除
D:\projects\hello 之后再重試。
最后打開瀏覽器,訪問 http://localhost/projects 即可看到Trac的界面了。
設置HTTP認證
在Trac界面右上方有個Login菜單,通過這個菜單登錄之后,創建bug或者做其他修改時就不用每次都輸入用戶名。不過這個菜單需要單獨配置才能正常工作。
首先我們要生成密碼文件。打開命令行,輸入以下命令:
D:
cd D:\projects
D:\Apache\Apache2\bin \htpasswd -cm d:\ projects \.htaccess admin
Automatically using MD5
format.
New password: *****
Re-type new password:
*****
Adding password for user
admin
即可生成密碼文件
.htpasswd。以后向該密碼文件里追加用戶只需這樣即可。
D:\Apache\Apache2\bin\htpasswd -m d:\ projects\.htaccess user
然后編輯
httpd.conf,在最末尾加入以下內容:
<LocationMatch
"/projects/[^/]+/login">
AuthType Basic
AuthName
"Trac"
AuthUserFile
D:/projects/.htaccess
Require
valid-user
</LocationMatch>
然后重新啟動Apache。