Linux Trac还是比较常用的,于是我研究了一下Linux Trac,在这里拿出来和大家分享一下,希望对大家有用。Linux Trac是一款非常优秀的项目管理软件,它将版本控制、WIKI、Bug管理、项目进度管理集成到了一起,但是其安装部署过程相对麻烦,在这里我将整个部署过程完整记录,以供其他朋友参考。注意本文针对的仅是一个项目的部署,如果要同时支持多个项目,稍微改一下就行了,请参阅其他文献。
系统版本:Fedora Release 11 (Leonidas)Kernel Linux 2.6.29.4-167.fc11.i686.PAE
以下操作均使用root权限进行
1.安装Linux Trac
1.1安装python
fedora11默认安装,此步跳过yum install python yum install python-devel
1.2安装easy_install
wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz tar xvzf setuptools-0.6c11.tar.gzcd setuptools-0.6c11
1.3安装Linux Trac
python easy_install.py trac
2.安装svn
yum install subversion
3.安装apache
3.1安装xampp
由于apache最后要使用https提供服务,为了简化安装过程,我们使用已经配置好的xamppwget http://www.apachefriends.org/download.php?xampp-linux-1.7.3.tar.gz tar xvfz xampp-linux-1.7.3.tar.gz –C /opt
3.2安装svn模块
mod_dav_svn该模块用于apache读取svn版本库用yum install mod_dav_svn mod_python模块用于apache运行python,Linux Trac需要它yum install mod_python以下操作使用admin账号进行,admin为一个普通账号,注意:权限设置很重要!
4.创建项目
4.1创建SVN版本库
mkdir –p /home/admin/svn/myproject svnadmin create /home/admin/svn/myproject
4.2创建Linux Trac项目
mkdir –p /home/admin/trac/myproject trac-admin /home/admin/trac/myproject initenv
然后会出现以下提示:
Project Name: myproject
Database connection string: sqlite:db/trac.db
Repository type: SVN
Path to repository: /home/admin/svn/myproject
最后会提示Congratulations!表明创建成功
以下操作使用admin账号进行
5.配置项目
5.1创建账号文件
这里首先创建一个账号文件,使用的是apache的htpasswd,该账号文件最后由apache进行认证,并供svn和Linux Trac同时使用。为一个名为user1的用户创建账号htpasswd –c /home/admin/.htpasswd user1New password:输入密码Re-type new password:再输入密码再添加一个名为user2的用户htpasswd /home/admin/.htpasswd user2
注意第二次以后创建没有-c选项了,具体的选项可以直接输入htpasswd看说明New password:输入密码Re-type new password:再输入密码……以此类推,创建完全部账号
5.2配置SVN
这里要修改SVN的授权文件,在/home/admin/svn/myproject/conf里有三个文件,由于认证由apache完成,因此,这里只需要修改授权文件authz打开authz,把原有内容删除,填写以下内容:
[groups]developers = user1,user2
[/]@developers = rw* =
[repository:/]@developers = rw* =
表明,user1、user2对版本库有读写权限,其他人没有权限。如果有新的用户加进来,只需在developers组中添加即可
5.3配置Linux Trac
Linux Trac的配置文件在/home/admin/trac/myproject/conf/trac.ini,里面有很多配置选项,这里主要配置svn的授权打开trac.ini,找到authz_file,填入以下内容:…
[trac]authz_file = /home/admin/svn/myproject/conf/authz authz_module_name = repository……注意,上面的authz_module_name = repository对应了svn配置文件中的[repository:/]
以下操作使用root账号进行
6.连接apache、trac、svn、ssl
6.1配置svn模块
首先把svn模块拷贝到xampp中
cp /usr/lib/httpd/modules/mod_dav_svn.so /opt/lampp/modules
cp /usr/lib/httpd/modules/mod_authz_svn.so /opt/lampp/modules
cp /usr/lib/httpd/modules/mod_python.so /opt/lampp/modules
然后修改/opt/lampp/etc/httpd.conf,找到LoadModule,在后面添加三行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule python_module modules/mod_python.so
6.2修改apache权限
apache默认是以nobody身份运行的,如果不修改权限,那么无法读取/home/admin下的内容,会出现403 Permission Denied错误同样是在httpd.conf中,搜索nobody将其改成admin即:……User admin……
6.3配置Linux Trac
xampp的https连接配置文件在/opt/lampp/etc/extra/httpd-ssl.conf打开它,随便找个地方,不过一定要在<VirtualHost>……<VirtualHost>标签对中,添加:<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /home/admin/trac/myproject
PythonOption TracUriRoot /trac
</Location>
<Location /trac/login>
AuthType Basic
AuthName "trac"
AuthUserFile /home/admin/.htpasswd
Require valid-user
</Location>
注:如果连首页都需要保密,那么就把AuthType、AuthName等全部写入/trac的Location中。
6.4Linux Trac配置svn
同样是在httpd-ssl.conf中添加
<Location /svn>
DAV svn
SVNParentPath /home/admin/svn
AuthType Basic
AuthName "repository"
AuthUserFile /home/admin/.htpasswd
AuthzSVNAccessFile /home/admin/svn/myproject/conf/authz
Require valid-user
</Location>
6.5替换冲突文件
xampp自带的sqlite库与Linux Trac有冲突,可以使用fedora中的sqlite库替换
yum install libsqlite3x
yum install libsqlite3x-devel
cp /usr/lib/libsqlite3.so /opt/lampp/lib/libsqlite3.so
下面操作需要root账号
7.完成
/opt/lampp/lampp startapache如果需要停止就是
/opt/lampp/lampp stopapache按照上面的步骤,Linux Trac和svn的地址分别是:https://localhost/trac https://localhost/svn/myproject
svn可以用浏览器访问,也可以使用工具下载
注:不用启动Linux Trac或svnserver
【编辑推荐】