在Dreamhost上安装Trac(2)
前文说明了如何在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
Recent Comments