新建一个数据库用户,并为这个用户创建一个数据库,假设为trac,用户名密码也为trac/trac
创建项目环境
创建/home/admin/trac目录
然后trac-admin ~/trac initenv
这个时候需要你输入项目的名称
以及数据库连接字符串还有svn的信息,svn的相关东西你可以先忽略,
数据库的信息 (数据库类型://用户名:密码@地址:端口/数据库名)postgres://trac:trac@localhost:5432/trac必须弄正确,因为这个涉及数据库中表的创建以及数据的初始化.
一切ok后,我们可以通过trac自带的一个轻量级服务器测试下.
tracd -p 8080 /home/admin/trac
浏览器中输入 localhost:8080
如果没有问题应该可以看到trac的主页
当然不会以这种方式直接运行程序了,考虑性能和可配置等方面的因素,决定使用fastcgi的方式运行trac
官方有文档 http://trac.edgewall.org/wiki/TracFastCgi 最下面是nginx的相关配置
也许你很容易就配置好了.
最后有一个让我纠结的便是登录问题.
因为官方文档中配置的方式是所有页面的访问都需要进行登录的.
所以我们需要修改成只有当用户点击登录的时候才要求验证用户.
这里增加了一个location,而将/的location中的认证相关行给去掉了.
location /login {
auth_basic "trac realm";
auth_basic_user_file /home/admin/trac/htpasswd;
# socket address
fastcgi_pass unix:/home/admin/trac/run/instance.sock;
## WSGI REQUIRED VARIABLES
# WSGI application name - trac instance prefix.
# (Or ``fastcgi_param SCRIPT_NAME /some/prefix``.)
fastcgi_param SCRIPT_NAME "";
fastcgi_param PATH_INFO $path_info;
## WSGI NEEDED VARIABLES - trac warns about them
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 QUERY_STRING $query_string;
# for authentication to work
fastcgi_param AUTH_USER $remote_user;
fastcgi_param REMOTE_USER $remote_user;
}