本文来自:http://blog.csdn.net/etongchina/archive/2009/09/12/4547251.aspx
感谢网友etongchina提供的文章,没有它要装好trac就太困难了。
全文如下:
在项目管理中 ITS(Issue Tracking System) 和 VCS(Version Control System) 是必不可少的,ITS中犹以开源的Trac使用最多。
首先简单介绍一下Trac:trac是一个开源的,基于解释型语言python的程序。
本文结合作者自己的实际操作来谈谈Trac安装的问题:
本文假定您已经安装了SVN,主要有2种安装方法。如果没安装,请看我的下一篇文章《版本控制软件SVN的安装与调试》
一 单独安装Trac
以下部分引用自 http://www.subversion.org.cn/?action-viewnews-itemid-11
########--引用开始--########
1) 下载程序,注意以下程序基于Subversion1.4.2
Python: http://www.python.org/ftp/python/2.4.4/python-2.4.4.msi
Trac: http://ftp.edgewall.com/pub/trac/trac-0.10.2.win32.exe
Clearsilver: http://www.clearsilver.net/downloads/win32/clearsilver-0.9.14.win32-py2.4.exe
Pysqlite: http://initd.org/pub/software/pysqlite/releases/2.3/2.3.2/pysqlite-2.3.2.win32-py2.4.exe
svn-python: http://subversion.tigris.org/downloads/svn-python-1.4.2.win32-py2.4.exe
Python是必须的运行环境,Trac自然要下载,Clearsilver是Trac需要的页面显示框架,Pysqlite是访问sqlite数据库的程序包,而svn-python是访问Subversion的程序包。
*作者注: 以上软件都是针对Subversion1.4.2,安装前请认清SVN版本号
2) 配置环境
首先安装Python,然后其他几个安装程序能够自动识别Python的安装,从而只需要按照默认安装即可。
3) 配置Trac
我的Python安装在“D:/Python24”,我们在D盘创建了一个目录trac,作为trac环境存放的目录,然后在“D:/Python24/Scripts”下运行(“>”后的为实际输入的内容,后面相同):
*作者注:在cmd命令行模式下运行以下代码:
D:/Python24/Scripts>../python.exe trac-admin d:/trac initenv
然后提示输入Project的名字,我们输入自己喜欢的名字,这里我输入tractest,回车;然后询问使用何种数据库,为了教程的简单,这里使用默认的 sqlite数据库,直接回车即可,数据库会存放在环境存放的目录;然后会询问版本库的类型,默认即可;然后会询问版本库的路径,在这个例子里我输入的是 “d:/svnroot/project2”,这个目录里就是我的一个版本库;然后提示使用何种模版,回车默认即可。最后回车,如果没有问题,trac配置环境就建立起来了,现在启动服务器即可,运行:
D:/Python24/Scripts>../python.exe tracd --port 8000 d:/trac
然后在浏览器打开“http://localhost:8000/trac” ,如果看到有内容,应该就是安装成功了,恭喜!
提示:关于Trac中版本库中文显示的问题,我看了一下,Trac处理文件编码是通过D:/trac/conf(刚才设置trac环境目录的配置目录)中的trac.ini文件的default_charset实现的,例如下面的配置:
default_charset = UTF-8
则在版本库中的文本文件如果是UTF-8编码的,则其中的中文字显示非常正常,当然如果是GBK(其实就是ISO88591)的文件,显示的中文是乱码。要想完全解决这个问题,不是单纯Trac能解决的,需要考虑更全面的方式解决。
########--引用结束--########
*作者注:由于本人安装时,SVN版本号大于1.4.2 所以导致了如下错误:
("Expected FS format '2'; found format '4'", 160043)
错误号160043 其实表述的是您的SVN版本号高于Trac可以支持的范围,可以升级相应的软件
二 使用Apache集成Trac,其实就是将trac作为一个模块来使用,同普通访问网站一样,推荐此种安装
这里又可分为两种安装方式,一种是将Trac安装于VisualSVN(已经集成Apache),另一种就是让Apache集成SVN和Trac。
1) 将Trac安装于VisualSVN
官方有说明:http://www.visualsvn.com/server/trac/ ,是英文的,比较详细,但考虑到许多同志对英文比较反感,特翻译一下:
1.下载VisualSVN Server 2.0或更高版本
2.以默认设置安装(也可以自定义)
3.在VisualSVN Server管理界面创建"MyProject"仓库
4.至少创建一个SVN的账号
5.下载VisualSVN-Server-Trac-2.0.0.20384.zip (约12M).
6.解压至%ProgramFiles%//VisualSVN Server或你的安装目录
7.创建Trac的目录 例如Create folder C:/Trac
8.允许服务能够访问Trac的目录
9.在命令行执行:
"%ProgramFiles%/VisualSVN Server/trac/trac-admin.bat" C:/Trac/MyProject initenv
使用默认的C:/Repositories/MyProject作为SVN仓库路径.
10.添加系统变量:
PYTHONHOME=%ProgramFiles%/VisualSVN Server/Trac/python
11.修改VisualSVN Server下的conf/httpd-custom.conf,添加一下内容
* 如果使用SVN自带的认证,添加以下代码
LoadModule python_module "trac/python/mod_python_so.pyd"
LoadModule authz_user_module bin/mod_authz_user.so
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir C:/Trac
PythonOption TracUriRoot /trac
AuthName "Trac"
AuthType Basic
AuthBasicProvider file
AuthUserFile "C:/Repositories/htpasswd"
Require valid-user
</Location>
* 如果使用的是Windows系统自带的认证,即系统登陆账号,则添加以下代码
LoadModule python_module "trac/python/mod_python_so.pyd"
LoadModule authz_user_module bin/mod_authz_user.so
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir C:/Trac
PythonOption TracUriRoot /trac
AuthName "Trac"
AuthType Basic
AuthBasicProvider visualsvn
Require valid-user
</Location>Restart VisualSVN Server.
12.通过 http://localhost/trac/ 或者 https://localhost/trac/ 访问如果提示登陆说明安装成功!
*作者注:在自定义安装路径的时候记得要将 trac/python/Scripts/tracd-script.py 里的
#!C:/Ivan/server-trunk/trac/dist/python/python.exe
修改为:
#!./python.exe
其实就是修改python解析器的路径了
*作者注:其实通过此种安装也可以独立运行Trac,方法为写一个BAT文件,添加以下内容
#代码开始
e:
cd E:/VisualSVN Server/trac/python/Scripts
tracd --port 8000 E:/web/trac/MyProject
@echo 'keep on'
PAUSE
#代码结束
这里我的VisualSVN的安装路径为E:/VisualSVN Server/
Trac目录为E:/web/trac
端口为8000
可以通过http://127.0.0.1:8000 来访问
2) Apache集成SVN和Trac
以下部分引用自 http://www.cnblogs.com/zealic/archive/2007/12/29/1019837.html
########--引用开始--########
1) 准备软件
SVN-1.46 :
http://subversion.tigris.org/files/documents/15/41077/svn-win32-1.4.6.zip
SVN-1.46-Py2.5 :
http://subversion.tigris.org/files/documents/15/41078/svn-win32-1.4.6_py25.zip
TortoiseSVN-1.4.6 (可选) :
http://jaist.dl.sourceforge.net/sourceforge/tortoisesvn/TortoiseSVN-1.4.6.11647-win32-svn-1.4.6.msi
TortoiseSVN-1.4.6-LangPack (可选):
http://jaist.dl.sourceforge.net/sourceforge/tortoisesvn/LanguagePack-1.4.6.11647-win32-zh_CN.exe
Apache-2.2.6 :
http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.2.6-win32-x86-no_ssl.msi
Python-2.5 :
http://www.python.org/ftp/python/2.5/python-2.5.msi
Mod_Python-3.3.1-py2.5-Apache2.2 :
http://apache.mirror.phpchina.com/httpd/modpython/win/3.3.1/mod_python-3.3.1.win32-py2.5-Apache2.2.exe
SetupTools-0.6c7
http://peak.telecommunity.com/dist/ez_setup.py
PySqlite-2.4.0-py2.5 :
http://initd.org/pub/software/pysqlite/releases/2.4/2.4.0/pysqlite-2.4.0.win32-py2.5.exe
或
http://files.cnblogs.com/zealic/pysqlite-2.4.0.win32-py2.5.rar
Trac-0.11b :
http://ftp.edgewall.com/pub/trac/Trac-0.11b1.zip
Genshi-0.4.4-py2.5 :
http://ftp.edgewall.com/pub/genshi/Genshi-0.4.4-py2.5.egg
*以上大多软件都有明确的依赖关系,切忌使用最新版本,比如 Mod_Python 依赖 Python-2.5,哪怕是 Python-2.5.1 都不支持 。
将以上所有软件下载到 D:/Setup
2) 配置环境
2.1) 安装基本环境
首先安装 Python-2.5,这里假设安装到 D:/Python
安装 Apache-2.5.6,这里假设安装到 D:/Apache
安装 Mod_python。
2.2) 配置环境
在 httpd.conf 末尾加入以下代码:
LoadModule python_module modules/mod_python.so
Alias /hi/ "D:/Apache/htdocs/py_scripts/"
<Directory "D:/Apache/htdocs/py_scripts/">
AddHandler mod_python .phtm
PythonHandler test
PythonDebug On
</Directory>
创建一个文件 test.py 到 Apache 的 ./htdocs/py_scripts 目录中
[test.py]
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!")
return apache.OK
2.3) 测试
启动 Apache 服务。
访问 http://127.0.0.1:8080/hi/hello.phtm 测试,出现 "Hello World!" 代表成功。
2.4) 安装 pysqlite
执行 pysqlite-2.4.0.win32-py2.5.exe 以自动安装 pysqlite。
3) 安装 Subversion
这里假设 Subversion 安装到 D:/Subversion
3.1) 安装 Subversion service
安装 Subversion 服务,请参考我的 用 BAT 注册 Subversion 服务 以简化安装步骤。
3.2) 安装 Python binding for Subversion
解压 svn-win32-1.4.6_py25.zip,将 svn 目录和 libsvn 目录复制到 D:/Python/Lib
修改 libsvn 目录下的 "_*.dll" 文件为 "_*.pyd"
3.3) 与 Apache 整合
a) 装载模块
复制 D:/Subversion/bin 目录下的以下文件复制到目录 D:/Apache/dlls
- intl3_svn.dll
- libdb44.dll
- ssleay32.dll
- libeay32.dll
- mod_authz_svn.so
- mod_dav_svn.so
b) 配置 Apache
在 httpd.conf 末尾加入以下代码:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module dlls/mod_dav_svn.so
LoadModule authz_svn_module dlls/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath "G:/ALM/VersionRepository"
</Location>
# libsvn 依赖下面的两个 dll,如若不导入,则会造成 trac 无法进行 Browser source
LoadFile "./dlls/ssleay32.dll"
LoadFile "./dlls/libeay32.dll"
3.4) 测试
关闭 Apache 服务,并重启。
确保你的 Svn 仓库中存在 MyRepos。
访问 http://127.0.0.1:8080/svn/MyRepos 。
出现 Subversion 你的 MyRepos 仓库的目录结构则代表成功。
4) 安装 Trac
4.1) 安装 Trac
a) 直接执行 ez_setup.py 以安装 Python SetupTools。
b) 解压 Trac 到 D:/Setup/Trac-0.11b1
安装 Trac 依赖包 Genshi-0.4.4-py2.5.egg
D:/Python/Scripts/easy_install D:/Setup/Genshi-0.4.4-py2.5.egg
c) 安装 Trac
D:/Setup/Trac-0.11b1/setup.py install
d) 初始化 trac 仓库
D:/Python/Scripts/trac-admin D:/ALM/trac/test initenv
按照命令提示进行 test 的配置。
4.2) 与 Apache 整合
在 Apache 中添加以下代码
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv D:/ALM/trac/test
SetEnv PYTHON_EGG_CACHE /tmp
PythonOption TracUriRoot /trac
AuthType None
</Location>
4.3) 测试
打开 http://127.0.0.1:8080/trac/browser ,检查是否显示 SVN 的目录树。
出现则代表成功。
5) 安装 TortoiseSVN (可选)
安装 TSVN 及其语言包。
6) 依赖关系图
图标释义 :
星星 : 独立组件。
灯泡 : 依赖其他独立组件的组件。
魔法棒 : Apache 模块。
蓝线为依赖 Subversion。
橙线为依赖 Python。
紫线为依赖 Apache。
7) 结束语
Trac 配置起来很复杂,这里只做了简单的配置,甚至没做任何权限管理。
这些内容,我们下次再说。
警告 :
1.本文所使用的是 Trac 0.11b1 版,不保证对文章内容对其他版本适用。
2.同样也不推荐你在实际环境部署使用该beta版,如出现任何问题,概与本人无关。
########--引用结束--########
在实际安装中Apache应该已经安装,故上文不一定全部适用