Mar 062008
 

前文说明了如何在Dreamhost安装Trac。安装完了怎么开始使用呢

因为Dreamhost是一个虚拟主机,因此我们不能使用tracd来启动,我们对外的唯一途径就是80端口的web server,也就是apache。而且我们不能自行安装apache的mod,于是也不能使用mod_python或者mod_wsgi的模式,也就是说只能用cgi或者fastcgi的模式,而本文只介绍fastcgi的做法

首先假设我们的站点的目录是~/mysite,而trac的目录在~/mytrac,而且我们已经初始化了一份trac

这里我把站点的目录和trac的目录分开,这样方便管理,而且站点其实需要很少文件的。我们只需要一个index.fcgi和一个.htaccess

这里是index.fcgi的内容

#!/bin/bash
 
export TRAC_ENV="${HOME}/mytrac"
 
export LD_LIBRARY_PATH=${HOME}/python/lib:${LD_LIBRARY_PATH}
export LD_RUN_PATH=${HOME}/python/lib:${LD_RUN_PATH}
export PATH=${HOME}/python/bin:$PATH
 
exec ${HOME}/python/bin/python ${HOME}/python/share/trac/cgi-bin/trac.fcgi

由于我们的python是安装在用户目录的,因此需要更多的预设环境变量
其实你也可以直接copy trac.fcgi过来在头部加上配置,但是我更喜欢自己些一个文件然后exec默认的fcgi文件
而且我exec的时候,可以直接指定使用的python的路径,而在trac.fcgi头部标注路径的做法似乎不太生效

接下来就是.htaccess文件

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.fcgi/$1 [L]
RewriteRule ^$ index.fcgi
 
AuthType Basic
AuthName "Trac"
AuthUserFile ${HOME}/mytrac/trac.htpasswd
Require valid-user

首先就是rewrite了,把所有的请求都rewrite给index.fcgi
然后就是认证。非常可惜,Dreamhost并不支持在.htaccess里面使用Location指令,因此我不得不把整个site都加入验证了,因此我的site变得完全private了,本来应该只是针对/login做验证。我尝试了很久都没有解决方案

so it’s done

Mar 062008
 

在公司使用了一段时间的Trac,觉得很不错,于是想在Dreamhost上安装一个Trac,方便记录自己的一些想法,也可以用作跟朋友一起做一些小项目。本文就是介绍如何在Dreamhost上安装Trac

Dreamhost的wiki里面也有提及如何安装Trac,但是相应的版本比较旧了,而且感觉也不是很完整,在参考wiki来安装的时候也碰到不少问题。最后还是决定安装目前最新版的Trac 0.11。之前介绍的在公司安装的是0.10,一来在windows下0.10一来的包都有二进制版本,二来那个时候0.11还没有很成熟。现在Trac官方网站已经把0.11的安装说明作为默认的了,看来0.11很快就要发布了。另外也因为在linux下安装本身就没有现成的二进制包,而0.11依赖的包更少,更容易安装。

Dreamhost上的python版本是2.3.5,另外因为没有办法使用根用户,所以索性在自己的用户底下安装最新的python2.5.1,更加容易处理。

从python网站下载Python-2.5.1.tgz,然后参看Dreamhost的wiki安装

cd
mkdir python
tar -zxvf Python-2.5.1.tgz
cd Python-2.5.1
./configure --prefix ~/python/ --enable-shared
make
make install
install -c -m 644 ./libpython2.5.a ~/python/lib/
install -c -m 755 ./libpython2.5.so ~/python/lib/
install -c -m 755 ./libpython2.5.so.1.0 ~/python/lib/

我把它安装在我的用户目录的python/下,有几个lib在用户模式下安装并不会copy到正确的位置,因此需要自己处理一下

然后就可以通过

~/python/bin/python

来测试是否正常工作

接着修改我们的.bashrc

export LD_LIBRARY_PATH=${HOME}/python/lib:${LD_LIBRARY_PATH}
export LD_RUN_PATH=${HOME}/python/lib:${LD_RUN_PATH}
export PATH=${HOME}/python/bin:$PATH

再测试一次正常工作

. ~/.bashrc
python

剩下来的工作,主要就是参看Trac官方提供的Install手册

先安装easy install

wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

接着用easy install安装Trac和依赖的包

easy_install Pygments
easy_install Genshi
easy_install Trac

运行

tracadmin

成功,现在Trac已经可以开始使用了

待续