我们公司最近决定搭建一套项目管理软件,我选择了Trac,以下是本人记录的搭建步骤:
一、 搭建准备
操作系统:Fredora10
所需软件:
1. apache: http-2.2.16.tar.gz
2. python: python 2.4.3(系统自带)
3. sqlite: sqlite 3.3.6(系统自带)
4. Genshi: Genshi-0.6.tar.gz(trac0.11 版本以后代替了clearsilver)
5. Subversion: subversion-1.4.4.tar.gz 、subversion-deps-1.4.4.tar.gz(这个是subversion的支持包)
6. Pysqlite: pysqlite-2.5.5.tar.gz(python 2.5 以上版本不需要)
7. Apr-util: Apr-util-1.2.7.tar.tar(支持Subversion)
8. Apr: Apr-1.2.7.tar.tar(支持Subversion)
9. Setuptools: setuptools-0.6c11.tar.gz(支持trac)
10. trac: Trac-0.12.tar.gz
注:搭建SVN 特别需要注意版本问题,以上软件版本已经本人测试,可用。这些软件都可以从CSDN 下载!
二、 安装过程
1、安装 Apache2.2.16
- # tar –zxvf http-2.2.16.tar.gz
- # cd httpd-2.2.16
- # ./configure --enable-dav --enable-so --enable-ssl --enablemaintainer-mode --prefix=/usr/local/apache2 --enablemods-
- hared=all
- # make
- # make install
验证:安装完毕,输入IP 查看是否出现“It Works”
2、安装 apr 和apr-util
apr 和apr-util 这两个软件是对后端服务软件进行优化的。因为apache 作为前端web 服务器软件,如果要整
合一些后端的web 服务器软件的话,如tomcat ,就要用到这两个软件了。这两个软件系统是自带的,也可以
下载源码包安装。都要编译进apache 里面去的,以模块的形式。
(1) 安装apr
- trac# tar -zxvf apr-1.2.7.tar.tar
- trac# cd apr-1.2.7
- apr-1.2.7# ./configure
- apr-1.2.7# make
- apr-1.2.7# make install
(2) 安装apr-util
- trac# tar -zxvf apr-util-1.2.7.tar.tar
- trac# cd apr-util-1.2.7
- apr-util-1.2.7#. /configure --with-apr=/usr/local/apr/
- apr-util-1.2.7# make
- apr-util-1.2.7# make install
3、安装Subversion
- trac# tar -zvxf subversion-1.4.4.tar.gz
- trac# tar –zxvf subversion-deps-1.4.4.tar.gz
- trac# cd subversion-1.4.4
- subversion-1.4.4# ./configure --with-apxs=/usr/local/apache2/bin/apxs --withapr=/
- usr/local/apache2/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-
- config --prefix=/usr/local/sv
- subversion-1.4.4# make
- subversion-1.4.4# make install
安装成功的话,/usr/local/apache2/modules 里应该有mod_dav_svn.so和mod_authz_svn.so。
如果没有就在httpd.conf 中添加:
- #vi /usr/local/apache2/conf/httpd.conf
添加:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
4、整合Apache+SVN
1) 配置到第3 步的时候,输入“svn”会提示“Type 'svn help' for usage.”,证明svn 已经安装成功。
2)创建版本库
/ #mkdir data(我在/ 根目录下建立一个data目录来保存版本库)
data# svnadmin create /data/repos(创建repos 版本库,创建完之后用ls 命令查看一下,如果生成很多文件就表示创建
成功!)
3)导入文件到版本库
home# svn import /share/www file:///data/repos -m “注释”(把/share/www
目录下的导入到当前版本库下)
4)配置版本库目录安全性
#chmod –R 700 /data/repos(不让其他人有该目录的权限)
修改http.conf 文件的:
#vi /usr/local/apache2/conf/httpd.conf(这个是我系统路径)
User daemon
Group daemon
把上述内容改成:
User apache
Group apache (注:提前创建apache用户和apache组)
5)修改svn 版本库的所有者
#chown –R apache:apache /data/repos
6)配置apache 支持svn
#vi /usr/local/apache2/conf/httpd.conf
在文件末尾添加以下内容:
<Location /repos>
DAV svn
SVNParentPath /data/repos #版本库的根目录
SVNListParentPath on
AuthType Basic #连接类型设置基本验证
AuthName "Subversion Repository" #登录时提示对话框的内容
AuthUserFile /home/svn/passwd.htpasswd #版本库用户的文件,用apache 的htpasswd 命令生成
Require valid-user #告诉apache 在authfile 中所有的用户都可以访问
</Location>
保存退出,重启一下apache !
5、配置SVN 权限管理(配置 /data/repos/auth.conf)
1) 添加用户
#/htpasswd -c /home/svn user1
New password: xxxxxx
Re-type new password: xxxxxx
Adding password for user user1
第一次设置用户时使用-c 表示新建一个用户文件。回车后输入用户密码,完成对用户的增加,第二次添加用
户不需要带 –c 参数如:
同理,添加user2
2) 权限分配
[groups] (这个表示群组设置)
Admin=usr1,user2 (这个表示admin 群组里的成员 user1,user2)
Develop=u1, u2 (这个表示Develop 群组里的成员 u1,u2)
[svn:/] (这表示,仓库svn 的根目录下的访问权限)
user1 = rw (仓库user1 用户具有读和写权限)
user2 = r (仓库userl 用户具只有读权限)
@develop=rw (这表示群 develop 的成员都具有读写权限)
[/] (这个表示在所有仓库的根目录下)
( = rw 这个表示对所有的用户都具有读写权限)
3) 重启apache
如果访问http://ip/svn/s1(s1 是我刚才建的一个版本库)提示输入用户名密
码,输入刚才创建的用户名和密码登录进去看到“Revision 0: /”之类的就表示成功!
6、安装Genshi
解压
# tar -zxvf Genshi-0.6.tar.gz
安装
# cd Genshi-0.6
# python setup.py install
7、安装pysqlite
解压
# tar -zxvf pysqlite-2.5.5.tar.gz
安装
#cd pysqlite-2.5.5
# python setup.py install
8、安装setuptools
解压
# tar -zvxf setuptools-0.6c11.tar.gz
安装
# cd setuptools-0.6c11
# python setup.py install
9、安装Trac
解压
# tar -zxvf Trac-0.12.tar.gz
# cd Trac-0.12
安装
# python setup.py install
10、配置Trac+apache
装好trac 后,使用trac-admin 初始化一个项目php,根目录为myproject,修改目录用户组。
新建一目录:#mkdir /data/myproject
修改用户组为apache:#chown –R apache:apache /data/myproject
新建一个PHP项目:#trac-admin / data/myproject/php initenv
这个命令即可启动初始化/data/myproject项目的交互进程,是建立trac 项目,运行后提示如下:
Project Name [My Project]> 输入项目名称
Database connection string [sqlite:db/trac.db]> 因为前面使用的是sqlite 所以直接回车即可
Repository type [svn]>仓库类型svn 回车
Path to repository [/path/to/repos]>回车
Templates directory [/usr/share/trac/templates]> 模板路径,还是回车
测试新建项目
trac 有两种方式提供web 服务,其一是trac 自带的tracd,它本身就是一个httpd,启动方式如下:
#tracd --port 8000 /data/myproject/php
或者你有两个项目,则在后面加一个目录:
#tracd --port 8000 / data/myproject/php1 /data/myproject/php2
这种方式很简单,但问题是trac 本身都不建议你用,因为tracd 不够完善.但不管怎么样,你可以试用一下
tracd,看看你的安装配置是不是都可以work 了,毕竟加上apache,是件相对复杂很多的事情,所以,在这之
前用tracd来检验一下还是必要的。启动服务后,你就可以在一台客户机上使用浏览器来来浏览你开启的web
服务了。
11、集成Trac 与Apache
前序:网上有些人运用了cgi 模式,但是本人经过一系列的试验发现这个不太好用,因为网上的作者对于有些配置自己都不
怎么明白,所以导致初试者云里雾里的,搭建不成功。这里我运用mod_python.so 模块来完成这一项工作,简单,易懂!
安装 mod_python 模块,首先得下载,这里我用的是3.3.1 版本(网上说得跟apache 版本一致,所以我找了
这个版本,测试能用)
- 1)# tar zxvf mod_python-3.3.1.tgz
- 2)# cd mod_python-3.3.1
- 3)# ./configure --with-apxs=/opt/apache2/bin/apxs --with-python=/usr/bin/python (这里我用的是系统自带
- 的python)
4)注:编译完后,此时你make 的话可能会出现报错:
apxs:Error: Command failed with rc=65536.
make[1]: *** [mod_python.so] Error 1
make[1]: Leaving directory
‘/root/soft/mod_python-3.3.1/src'
make: *** [do_dso] Error 2
解决方法是:编辑 解压后的源目录/mod_python-3.3.1/src/connobject.c 的 142 行:
!(b == APR_BRIGADE_SENTINEL(b)
改成:
!(b == APR_BRIGADE_SENTINEL(bb) 即:改成两个b
5)然后make && make install .完成后到 apache 的moudles 目录下查看有没有mod_python.so 模块,有的
话说明成功!
6)修改httpd.conf,添加:
LoadModule python_module modules/mod_python.so 加载mod_python.so 模块
<Location /trac/php>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv "/data/myproject/php" 是创建php 项目的目录
PythonOption TracUriRoot "/trac/php" 这个跟头上的Location 保持一致即可
</Location>
这是集成 apache 的用户验证
- <LocationMatch /trac/php/login>
- AuthType Basic
- AuthName "Subversion Repository"
- AuthUserFile /home/svn/passwd.htpasswd apache 生成的密码文件
- Require valid-user
- </LocationMatch>
7)添加完成后,记得把你Trac 生成项目的目录(比如上面的/data/myproject/php,要给apache 的用户
chown 一下,不然会报错)
8)重启apache 即可!这样用浏览器访问http://127.0.0.1/trac/php 即可访问到 Trac 的界面!