中国开发网: 论坛: 超级垃圾站: 贴子 752280
leejd
FreeBSD上通过ports安装及配置Trac
FreeBSD上通过ports安装及配置Trac
没有评论
由 Marshalys 发表于2009-07-16 21:51:34
Trac是一个很强大的开源项目管理系统,用python语言编写,许多开源项目都在用它,比如:wordpress,django,dojo,jquery等等。

下面就来介绍在FreeBSD上通过Ports安装及配置Trac的步骤:

1. 用ports安装trac程序。
# cd /usr/ports/www/trac
# make install clean

2. 安装成功后,创建trac的instance,我通常创建在/usr/local/www/trac目录下。
# trac-admin /usr/local/www/trac initenv

3. 配置用trac的fastcgi方式,前端web server用的nginx。

1) nginx的配置例子如下:
server {
listen 8003;
server_name localhost;


if ($uri ~ ^/(.*)) {
set $path_info /$1;
}

location / {
auth_basic “trac realm”;
auth_basic_user_file /usr/local/www/trac/conf/passwd;

fastcgi_pass unix:/usr/local/nginx/var/fcgi_run/nginx.trac.socket.1;

include fastcgi_params;

fastcgi_param SCRIPT_NAME “”;
fastcgi_param PATH_INFO $path_info;

fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
}
}

2) 接下来就是启动trac的fastcgi程序了,有两种方案:
[1] 第一种方案自己写一个fastcgi的处理程序:
(1) 在/usr/local/share/trac/cgi-bin目录下增加一个trac-standalone-fcgi.py文件,其内容如下:
#!/usr/local/bin/python2.5
import os
sockaddr = ‘/usr/local/nginx/var/fcgi_run/nginx.trac.socket.1′
os.environ['TRAC_ENV'] = ‘/usr/local/www/trac’

try:
from trac.web.main import dispatch_request
import trac.web._fcgi

fcgiserv = trac.web._fcgi.WSGIServer(dispatch_request,
bindAddress = sockaddr, umask = 7)
fcgiserv.run()

except SystemExit:
raise
except Exception, e:
print ‘Content-Type: text/plain\r\n\r\n’,
print ‘Oops…’
print
print ‘Trac detected an internal error:’
print
print e
print
import traceback
import StringIO
tb = StringIO.StringIO()
traceback.print_exc(file=tb)
print tb.getvalue()
(2) 将trac-standalone-fcgi.py设置为可执行。
# chmod 511 trac-standalone-fcgi.py
(3) 启动trac服务。
# ./trac-standalone-fcgi.py &
[2] 第二种方案是借助lighttpd的spawn-fcgi来启动trac自带的trac.fcgi程序:
# /usr/local/nginx/bin/spawn-fcgi -s /usr/local/nginx/var/fcgi_run/nginx.fcgi.trac.socket.1 -f /usr/local/share/trac/cgi-bin/trac.fcgi

3) 注意修改socket文件的权限,这里由于nginx执行的用户是www,因此:
# chown www /usr/local/nginx/var/fcgi_run/nginx.trac.socket.1

4. 此外trac的默认编码显示中文时有问题,需修改配置文件中default_charset项。
# ee /usr/local/www/trac/conf/trac.ini
设置:
default_charset = utf-8

5. 配置简单的权限。
1) 修改trac.ini配置文件:
# ee /usr/local/www/trac/conf/trac.ini
设置:
authz_file = /home/etsvn/conf/authz

2) 在nginx配置文件中设置的认证文件中添加用户及密码信息,由于nginx的基本认证信息格式为:
# 注释
用户名:密码:注释
# 密码为crypt(3)加密的

因此可以用apache的一个工具htpasswd来维护用户密码信息,例如:
# /usr/local/apache/bin/htpasswd -b /usr/local/www/trac/conf/passwd mars 111
这时你会发现/usr/local/www/trac/conf/passwd文件中有了mars:xxxxxxxx的信息,注意用户名密码用换行来分隔,每行之前不能有空行,否则会验证失败。

3) 给某个用户管理员权限以便去进行一些后续管理工作:
# trac-admin /usr/local/www/trac permission add mars TRAC_ADMIN

至此,基本安装及配置完成,具体一些用法及详细的配置后续再研究吧:)

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录