Trac 运营环境最简易配置(uwsgi+nginx)

@felixonmars 点名要一份trac的最简易配置步骤,不过其实trac这样一个geek东西,即使按本文配置好跑起来后也依然是一套半成品,还有很多东西需要去看文档去配置,就像awesome, vim等,在一段陡峭的学习曲线之前,都不怎么好用。 所以其实本文也不会降低多少门槛,大概比直接看官方的guide安装的时候少点压力,但不一定是好事。

此前有在公司技术部内推广使用trac做项目管理的想法,做过了解,不过因为各种原因还是用不下来。赖勇浩的博客有一系列文章介绍trac,也包括了在公司环境使用的经验。

Trac作为一套web应用,其实部署步骤和此前介绍的MoinMoin, Mercurial很类似的。

以下步骤介绍安装包含多国语言的基本trac环境。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
 
#安装基本组建
sudo -s
add-apt-repository ppa:nginx/stable
add-apt-repository ppa:uwsgi/release
apt-get update
apt-get install nginx uwsgi-python python-virtualenv subversion
 
#本次安装所需的路径,可按需修改
TRAC_ENV_PYHOME="/srv/trac/python-env"
TRAC_PROJECTS_DIR="/srv/trac/projects"
PROJECT_PATH="$TRAC_PROJECTS_DIR/myproject1"
 
#组件配置
cat >/etc/uwsgi-python/apps-enabled/uwsgi.xml << EOF
<uwsgi>
  <limit-as>256</limit-as>
  <processes>6</processes>
  <memory-report/>
  <vhost/>
  <no-site/>
</uwsgi>
EOF
 
#安装Trac, dev版本。
#虽然其实可以easy_install Trac,但是就不会编译多国语言了。
 
cd /tmp
virtualenv $TRAC_ENV_PYHOME
source $TRAC_ENV_PYHOME/bin/activate
easy_install Genshi
easy_install Babel
 
svn co http://svn.edgewall.org/repos/trac/trunk trac
cd trac
python setup.py install
 
#建立项目
mkdir $TRAC_PROJECTS_DIR
trac-admin $PROJECT_PATH initenv
 
#如果你的终端为中文(zh_CN.UTF-8,比如date命令是中文的年月日),现在应该是中文提示,否则以上安装可能问题。
 
#输入项目名称、数据库连接(默认)后,项目建立完成
 
trac-admin $PROJECT_PATH deploy $PROJECT_PATH/deploy
 
cd $PROJECT_PATH/deploy/cgi-bin
cp trac.wsgi trac_wsgi.py
 
chown www-data:www-data -R $PROJECT_PATH
 
cat >/etc/nginx/sites-enabled/trac-project1 << EOF
server {
    listen   80;
    server_name project1.trac.domain.com;
    location / {
                include uwsgi_params;
                uwsgi_pass unix:///var/run/uwsgi-python/uwsgi/socket;
                uwsgi_param UWSGI_PYHOME $TRAC_ENV_PYHOME;
                uwsgi_param UWSGI_CHDIR $PROJECT_PATH/deploy/cgi-bin;
                uwsgi_param UWSGI_SCRIPT trac_wsgi;
                uwsgi_param UWSGI_SCHEME \$scheme;
                uwsgi_param REMOTE_USER \$remote_user;
        }
}
EOF
 
service uwsgi-python restart
service nginx reload

现在打开浏览器,根据你的地址,应该能打开自己的Trac了。

一个Trac实例只管理一个项目,如果需要多个trac就需要重复上述“添加项目”后的步骤。

Tips:

上述trac-admin /xxx deploy命令后,生成的目录里面有个htdocs目录,包含了项目内的静态文件。如果在nginx配置里面加上这样一段:

        location /htdocs/ {
                root $PROJECT_PATH/deploy;
        }

(注意里面的$PROJECT_PATH变量要对应你实际项目的路径),

然后修改$PROJECT_PATH/conf/trac.inihtdocs_location =的值为/htdocs/

可以降低静态文件请求对服务器的压力。

最后,多看官方文档。

文章分类 Programming, Python 标签: , , ,
2 comments on “Trac 运营环境最简易配置(uwsgi+nginx)
  1. cwz说道:

    无证程序员小心被抓呀

  2. cwz说道:

    是的必须小心被抓呀

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*