在windows上搭建Apache+Trac+Subversion
时间:2010-09-16 来源:Jerry.Kuan
以下是Trac在Ubuntu环境下的搭建过程
一.从http://trac.edgewall.org/wiki/TracDownload下载Trac最新版(目前为0.12)
二.依据http://trac.edgewall.org/wiki/TracInstall的知道一步步安装,以下为详细过程
2.1.安装必要的库
2.1.1 检查python是否已经安装
2.1.2 安装setuptools(后续安装中会用到easy_install命令)
Ubuntu下可以很方便的用sudo apt-get install python-setuptools命令来安装
2.1.3 安装Genshi
sudo easy_install Genshi(Unbutu下可以方便的用,但在window下需要下载python egg安装)
2.1.4 安装svn
包括svn服务以及python的svn实现,注意,双方的大版本必须要一致,比如svn服务的大版本是1.6,则python的相应实现也应该是1.6,否则在Trac中集成时将会出问题,切记!
apt-get install subversion
apt-get install python-subversion
2.1.4 安装Apache
可以通过sudo apt-get install apache2安装,也可以去Apache网站下载最新版本安装
2.1.5 安装mod_wsgi(用户也可以根据各自需要安装mod_python,但推荐使用mod_wsgi,因为mod_wsgi更快,而且mod_python已经停止开发,这里需要特别注意的是,不管是安装什么mod,都要特别注意该mod的python版本和要运行的python版本是否一致!!)
去http://code.google.com/p/modwsgi/下载mod_wsgi安装
也可以通过sudo apt-get install libapache2-mod-wsgi命令安装
2.2.安装可选库
2.2.1 安装Babel
为支持Localization,实现不同语言的选择,请安装Babel
可以通过sudo svn co http://svn.edgewall.org/repos/babel/ /home/download/Babel命令来下载,但要确保svn已安装
因为Babel依赖于CLDR,所以再安装之前还需要导入CLDR,根据所下载的Babel安装说明选择合适的CLDR版本下载,下载后执行sudo python ./scripts/import_cldr.py /home/download/common命令导入CLDR(注,/home/download/common为解压后的CLDR路径,需要和实际路径保持一致!)。安装CLDR非常重要,如果选择来安装Babel而没有安装CLDR,则再安装Trac时将出错,导致安装失败。如果不考虑本地化,可以略过这一步,不安装Babel,也就用不着安装CLDR。
下载完成后进入下载目录中的trunks目录执行sudo python setup.py install命令安装Babel
2.2.2 安装Docutils模块,Tra/home/download/common/home/download/commonc wiki中使用
在http://docutils.sourceforge.net/下载
解压后执行sudo python setup.py install命令安装
2.2.3 安装Pygments,语法高亮工具
在http://bitbucket.org/birkenfeld/pygments-main/downloads下载
解压后执行 sudo python setup.py install
2.2.4 安装pytz,主要是时区处理
从http://pypi.python.org/pypi/pytz/#downloads下载pytz(注意选择针对python的版本)
执行sudo easy_install pytz-2010l-py2.6.egg 命令安装pytz
2.3 安装Trac
可以通过setuptools的easy_install命令来安装,具体命令为easy_install Trac==0.12,也可以通过下载后再安装,具体命令为sudo python seup.py install
2.4 创建Trac项目运行环境
执行sudo trac-admin /home/diebold-Trac initenv命令,创建Trac项目,在创建的过程中需要回答一些问题,关于要创建的项目名称,所用的数据库链接字符等等。所填写的内容都将存在该项目的trac.ini配置文件中,用户不用担心在创建过程中出错,所有都可以再trac.ini中进行更改。
创建完成以后,可以执行tracd --port 8000 /home/diebold-Trac命令来启动Trac独立的web服务。
打开浏览器,输入http://127.0.0.1:8000,即可浏览Trac。如果进入项目以后,页面提示对某某目录没有读写权限,则用户需要手动去更改该目录的读写权限,具体命令为sudo chmod -R 777 diebold-Trac
2.5 配置Trac
2.5.1 生成WSGI配置文件
可以很方便的通过tarc-admin diebold-Trac deploy diebold-Trac命令来生成WSGI的相关配置文件。命令成功执行后生成cgi-bin/trac.wsgi文件,/该文件即为wsgi配置文件,后面配置Apache的时候将会用到
2.5.2 配置Apache
打开Apache配置文件httpd.conf(如果不清楚apache具体安装位置,可以执行whereis apache2命令来查找,一般来说配置文件在/etc/apache2中 )
在httpd.conf中添加以下配置
WSGIScriptAlias /trac /home/diebold-Trac/cgi-bin/trac.wsgi
<Directory /home/diebold-Trac>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
配置完成后应该重启apache,重启命令为sudo /etc/init.d/apache2 restart
注,apache常用命令为sudo /etc/init.d/apache2 start or restart or stop
重启apache后,即可通过http://localhost/trac来浏览Trac
2.5.3 配置基本权限控制
创建htpasswd文件,建议第一个用户使用命令行创建,其他用户可以使用Trac的插件来做
htpasswd -c htpasswd admin
按照提示完成创建用户后,给用户赋予admin权限,方便后续操作,具体命令为trac-admin /home/diebold-Trac permission add admin TRAC_ADMIN
2.5.4 安装Trac插件
安装Account Manager Plugin,具体命令为easy_install https://trac-hacks.org/svn/accountmanagerplugin/trunk
配置Account Manager,用户可以根据实际需要选择使用不同的模块,但需要注意的时,如果使用LoginModule 的话,需要现禁用web_ui,具体方法为,将Trac.ini中的components配置中添加acct_mgr.web_ui.LoginModule = enabled,同时需要设置password store
[account-manager]
; configure the plugin to store passwords in the htpasswd format:
password_store = HtPasswdStore
; with Trac < 0.10 use this instead:
password_format = htpasswd
; the file where user accounts are stored
; the webserver will need write permissions to this file
; and its parent folder
password_file = /var/trac/trac.htpasswd
另外,需要在apache的配置中将 Require valid-user配置注释掉,否则运行的时候会出错,切记切记!
以上步骤完成后重启apache,将会发现登录时使用的页面和之前apache默认的已经不太一样!
安装Svnauthz File Administration Plugin(管理SVN用户和权限),从http://trac-hacks.org/wiki/SvnAuthzAdminPlugin下载后安装
安装完成后应该对trac.ini的svn相关选项进行设置,具体为
authz_file = /home/Repository/D-Cash/conf/authz
authz_module_name = D-Cash(需要特别注意,这里填写的应该是svnadmin create时创建的repository名字,切记切记,否则使用svnauthadmin管理权限的时候会报出invalidpath,导致执行不成功!)
配置成功后就可以再Trac的admin页面通过Subversion Access来管理SVN的用户和权限
2.5.5 配置版本库(Repository)
先创建Repository, 具体命令为 sudo svnadmin create D-Cash
通过Trac添加repository后应该执行一下同步命令,具体命令sudo trac-admin /home/diebold-Trac repository resync D-Cash
最好能在svn的hook中配置一下post-commit,这样以来svn更新的时候就能在Trac的source broswer中看到相应的更新,具体做法为:在post-commit中添加如下命令:sudo /usr/local/bin/trac-admin /home/diebold-Trac changeset added $REPOS $REV
启动svnserve命令为svnserve -d -r /home/Repository/