基本还是弄着玩的…前提显然是有一台vps嗯嗯…
Trac 是一个专为软件开发设计的集问题追踪和 wiki 系统于一体的网页软件,git 是一个灵活而强大的版本控制工具,而 cherokee 则是一款简单好用的 web 服务器,当然,三者都是开源的。另外,这里选用 cherokee 而不是 nginx 或者 apache 这一类更为主流的服务器是因为 cherokee 的网站和默认页面比较好看所以想干脆来装逼一下这种事情我是不可能在教程里面说的。
为了搞好这个我折腾了一天,翻看了好多文档和教程,试了多种方法,最后是用的文档上没有提到的一种组合。之所以这样是因为按照文档进行设置一直不成功…
我所用的系统是 Ubuntu 11.10 64bit, 用 12.04 的话 cherokee 的管理面板一直打不开所以用的这个…同时也就意味着这份教程理论上适用于 Debian/Ubuntu 以及所有以此为基础的系统,比如 Mint 等,但是当然,我没办法做任何保证,而且一些细节的配置也可能需要根据具体情况进行修改。
新系统装好过后先卸掉不需要的包以及更新,具体命令可以参考这里,下面直接开始进行版本库的安装和配置。
1 2 |
apt-get install -y git-core useradd -m -K UMASK=027 git |
注意在给 git 用户设置密码或者配置密钥之前这个用户是实际上没办法使用的。
1 2 |
apt-get install python python-setuptools python-pygments python-tz subversion easy_install Trac |
随后我们需要新建一个 trac 用户并添加到 git 用户组,这样好让 Trac 有管理 git 仓库的权限:
1 |
useradd -m -K UMASK=077 -G git trac |
接下来就可以初始化我们的第一个 Trac 项目了:
1 |
sudo -u trac trac-admin ~trac/myproject initenv |
这里我们新建了一个名叫 myproject 的项目,这个是 trac 的环境目录名称,命令执行中会要求输入项目名称,输入的这个随后可以修改。
另外本教程以只建立一个 trac 项目为例,如果需要多项目请参照官方文档调整配置。
现在最基本的 trac 配置就已经完成了,可以执行
tracd --user=trac -s -p 8000 -d /home/trac/myproject 来启动 tracd 进程,访问 http://trac.example.com:8000
就能看到一个 Trac 的默认页面了。
下一步是给 Trac 添加上一个简单的认证,否则是没办法登录进行管理的。
1 2 3 4 5 6 7 8 |
apt-get install apache2-utils # 安装 apache2-utils 以使用 htpasswd pkill tracd sudo -u trac htpasswd -bc ~trac/myproject/htpasswd tracadmin 12345 sudo -u trac trac-admin ~trac/myproject permission add tracadmin TRAC_ADMIN # 设置用户 tracadmin 及其密码,并添加为管理员 tracd --user=trac -s -p 8000 -d --basic-auth="*,/home/trac/myproject/htpasswd,Restricted" /home/trac/myproject # 重启 trac 并启用认证 |
此时再访问 http://trac.example.com:8000
并点击右上角的 login 就可以登录后台了。
1 |
apt-get install cherokee |
此时访问 http://trac.example.com
就可以看到 cherokee 的默认界面了。
需要注意的是,和大多数 web 服务器不同,cherokee 并不需要用户自己编辑配置文件,而是自带了一个管理后台,我们使用下面的方法来进入后台并配置其与 Trac 一同工作。
首先在 console 中执行以下命令:
1 |
cherokee-admin -b |
会出现类似这样的提示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root@git:~# cherokee-admin -b [06/12/2012 13:17:56.456] (warning) rrd_tools.c:120 - Could not find the rrdtool binary. | A custom rrdtool binary has not been defined, and the server could not find one in the $PATH. Cherokee Web Server 1.2.2 (Jul 12 2011): Listening on port ALL:9090, TLS disabled, IPv6 enabled, using epoll, 4096 fds system limit, max. 2041 connections, caching I/O, 20 threads, 102 connections per thread, standard scheduling policy Login: User: admin One-time Password: lXcCRnfqL1qAgNRE Web Interface: URL: http://localhost:9090/ |
使用提供的用户名和密码就可以通过 http://trac.example.com:9090/
登录后台了,注意只要 console 关闭后台就会关闭,并且每次启动后台的时候密码都是随机生成的。这个也算是一种安全措施。
进入后台过后先到右上角的 Sources 菜单,点击左边的 “+” 图标新建一个信息源,并设置为:
Type: Remote Host
Nick: trac
Connection: localhost:8000
接下来到 vServers 菜单,新建一个虚拟主机,类型为 Manual 并设置为:
Nick: trac.example.com
Document Root: /home/trac/myproject
接下来选中刚新建好的这个虚拟主机,在 Behavior 中点 Rule Management 并把 Default 以外的规则都删除掉,然后选中 Default 到 Handler 选项卡中,设置为:
Handler: HTTP Reverse Proxy
Balancer: Round Rubin
Information Sources: trac
保存设置并重启 cherokee 服务器,再回到 console 中重新启动一次 trac:
1 |
tracd --user=trac --daemonize --single-env --protocol=http --hostname=localhost --port=8000 --basic-auth="*,/home/trac/myproject/htpasswd,Restricted" /home/trac/myproject |
此时访问 http://trac.example.com/
就是 Trac 的首页了。
要正常使用 Trac 还需要一点额外的配置。编辑 /home/trac/myproject/conf/trac.ini
:
171 |
base_url = http://trac.example.com |
201 |
use_base_url_for_redirect = true |
之后从网页登录,点页面右上的 Admin 进入管理面板,在左侧选择 Plugins 并展开 Trac 1.0. 找到 tracopt.versioncontrol.git.git_fs.*
项并将其下三个插件全部勾上,保存即可。
添加 git 项目的时候,在 Trac 后台点击左侧的 Repositories 并像这样设置:
Name=mygitproj
Type=git
Directory=/home/git/mygitproj.git
另外和可以在 cherokee 中添加规则来设置静态文件的位置,把 /chrome/site/
映射到实际的文件目录就可以了。
当然也可以在 cherokee 后台设置 SSL 一类的,自行发挥想象就好~
Running Trac + Git Hosting on a Low End VPS
Trac Standalone
Simple Cherokee Configuration
Cookbook: Setting up Trac