系统环境:ubuntu14.04 (并假设Apache2服务可以正常运行)
1. 安装软件:
sudo aptitude install trac python-mysqldb
2. 创建数据库
Trac可支持的数据库有:sqlite, postgresql及mysql等。默认的是sqlite,但这里选用的是mysql。
$ mysql -uroot -p Enter password: ****** mysql> CREATE DATABASE $myproject DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; mysql> show databases; mysql> exit
说明:Trac可以管理很多个项目,所以每个项目都需要创建自己的数据库。
3. 创建Trac环境的根目录
sudo mkdir /var/www/trac
因为Trac是需要与Apache2服务绑定的,所以一般放到/var/www下,当然了用户也可根据喜好随意设置位置。
4. 创建Trac项目
cd /var/www/trac sudo mkdir test sudo trac-admin test initenv >>projectname: test >>conn database: mysql://root:******@localhost/test
说明:数据库名称,项目名称最好都保持一致,免得容易混淆。这里的“Test” 即前面的 $myproject。
然后更改权限:
sudo chown -R www-data:www-data trac sudo chmod -R g+rsw trac
5. 绑定Apache2服务
编辑配置文件:/etc/apache2/apache2.conf,在文件最后添加如下内容:
<Location "/trac"> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/www/trac PythonOption TracUriRoot /trac AuthType Basic AuthName "Trac" AuthUserFile /etc/apache2/.svn_and_trac.htpasswd Require valid-user </Location>
认证方式为“Basic”,密码文件位置/etc/apache2/.svn_and_trac.htpasswd
上面配置也可以写成:
<Location "/trac"> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/www/trac PythonOption TracUriRoot /trac </Location> <LocationMatch "/trac/[^/]+/login"> AuthType Basic AuthName "Trac" AuthUserFile /etc/apache2/.svn_and_trac.htpasswd Require valid-user </LocationMatch>
跟上面的区别是,第一种配置为强制登录认证,不允许匿名访问;第二种则不强制。
确认以下模块(都在/etc/apache2/mods-enabled目录下)都已经启动起来,可通过以下命令确认:
sudo a2enmod env sudo a2enmod auth_basic sudo a2enmod python
6. 创建密码文件
Apache2认证的方式按照级别递增的顺序可分为:Basic, Digest, SSL; 前两种是通过http方式访问的,SSL是通过https,配置稍复杂。
这里使用的Basic认证:
$ htpasswd -c /etc/apache2/.svn_and_trac.htpasswd $username
参数“-c”表示第一次创建密码文件。如果后续需要追加用户,就不可使用参数“-c”了。如果将命令htpasswd替换成命令htdigest,则创建就是Digest认证文件了。
补充说明一下下面的几个命令: * a2dismod ------> disable一个Apache2模块,即从mods-enabled/目录中删除该模块的链接 * a2dissite ------> disable一个Apache2配置,即从sites-enabled/目录中删除该配置的链接 * a2enmod ------> enable一个Apache2模块,即在mods-enabled/目录中创建一个到mods-available/的模块的链接 * a2ensite ------> enable一个Apache2配置,即在sites-enabled/目录中创建一个到sites-available/的配置的链接 说明:在/etc/apache2的配置文件目录下一般有如下目录: * mods-available/ ------> 所有已安装的Apache2模块 * mods-enabled/ ------> 已经被开启正被使用的Apache2模块,都是链接到mods-available/的链接文件 * sites-available/ ------> 所有可支持的Apache2启动配置文件 * sites-enabled/ ------> 默认被使用的Apache2启动配置文件,都是链接到sites-available/的链接文件
7. 更改Trac环境的logo
编辑文件trac/$myproject/conf/trac.ini,相应部分更改如下:
[header_logo] alt = (logo of ucrobotics) height = -1 link = http://www.ucrobotics.com src = /themes/garamond/img/header-icon.gif width = -1
8. 添加管理权限
trac-admin /var/www/trac/test permission add $username TRAC_ADMIN
对于具有管理权限的用户,在通过浏览器访问Trac环境的时候,其导航栏的最右边会有一个“Admin”的链接,进入之后可以对其它用户的权限进行配置。
一般来说,具有管理权限的用户可以通过Web界面进行管理操作了,但若是需要通过命令行进行操作,可参考:wiki:TracAdmin
9. 重启Apache2服务测试
sudo /etc/init.d/apache2 restart
测试地址:http://localhost/trac
ubuntu14.04上Trac配置记录