您的位置:首页 > 运维架构 > Linux

[Linux]Install And Configure Trac

2011-09-08 15:05 302 查看
第一步: 安装Trac软件并初始化Trac系统
安装trac:apt-get install trac,然后创建trac文件夹:sudo mkdir /var/www/CeoCio,接下来修改所有者:sudo chown -R www-data:www-data /var/www/CeoCio
cd /var/www
sudo -u www-data trac-admin CeoCio initenv

Project Name [My Project]> cmet (在这里输入你的项目名称)

Database connection string [sqlite:db/trac.db]>postgres://firehare:123456@localhost/trac (输入PostgreSQL数据库的位置)

Repository type [svn]>

Path to repository [/path/to/repos]> /home/svn/repo (在这里输入你的项目对应的Subversion地址,注意Trac默认情况下只能访问本机的Subversion仓库,在上面填写地址时不能加"file://"前缀。)

Templates directory [/usr/share/trac/templates]>/usr/share/pyshared/trac/templates
除了填入project name = CeoPhase2其他项全部采取默认

第二步: 配置Apache (我使用的是方法二)
方法一:
[align=left]初始化Trac系统后,还需要在Apache中进行相应的配置才能使用。由于Trac使用CGI,因此首先要将Trac的CGI程序(/usr/share/trac/cgi-bin/trac.cgi)部署到Apache的cgi-bin目录中(做个符号链接即可)。过程如下:[/align]
cd /usr/lib
sudo chown -R www-data:www-data cgi-bin
cd cgi-bin
[align=left]sudo -u www-data ln -s /usr/share/trac/cgi-bin/trac.cgi trac.cgi[/align]
[align=left]然后在Apache配置中加入Trac站点的配置信息,在Ubuntu下站点配置通常放在/etc/apache2/sites-available/default这一文件中,可编辑该文件加入以下内容(这些内容在Trac的说明文档中都有,在/usr/share/doc/trac/README.Debian文件中):[/align]
 Alias /trac/ "/usr/share/trac/htdocs/"

   <Directory "/usr/share/trac/htdocs/">

        Options Indexes MultiViews

        AllowOverride None

        Order allow,deny

        Allow from all

   </Directory>

   <Location "/cgi-bin/trac.cgi">

        SetEnv TRAC_ENV "/var/www/trac"

   </Location>

   <Location "/cgi-bin/trac.cgi/login">

        AuthType Basic

        AuthName "trac"

        AuthUserFile /etc/apache2/trac.htpasswd

        Require valid-user

   </location>
上面配置使用Apache内建支持的基于htpasswd文件的Basic认证方式,使用/etc/apache2/trac.htpasswd为口令文件,因此需要创建这一文件,并创建用于访问Trac系统的用户名和密码。这通过htpasswd命令完成,如下所示:

cd /etc/apache2

sudo htpasswd -c trac.htpasswd cisco(首次增加用户要带-c,第二次增加用户就不用了)
cisco

创建了一个用户名为cisco密码也为cisco的帐号

cat /etc/apache2/trac.htpasswd
可以看到你增加的用户名及其密码

最后使用重新加载Apache配置:
sudo /etc/init.d/apache2 reload (让apache重新登陆)
然后就可以通过浏览器访问你的Trac了,地址是http://localhost/cgi-bin/trac.cgi
 
方法二:
创建apache虚拟机:sudo vi /etc/apache2/sites-available/trac

内容如下:

<VirtualHost *>

    ServerName wslnxcnhz0286

    ServerAdmin keyongshi@hengtiansoft.com

    DocumentRoot /var/www/CeoCio

    <Location />

        SetHandler mod_python

        PythonInterpreter main_interpreter

        PythonHandler trac.web.modpython_frontend

        PythonOption TracEnv /var/www/CeoCio/

        PythonOption TracUriRoot /

        SetEnv PYTHON_EGG_CACHE /tmp

    </Location>

    <Location /login>

        AuthType Basic

        AuthName "CMET_WZU Trac Server"

        AuthUserFile /var/www/CeoCio/.htpasswd

        Require valid-user

    </Location>

    ErrorLog "/var/log/apache2/trac_errors.log"

    CustomLog "/var/log/apache2/trac_accesses.log" common

</VirtualHost>

sudo htpasswd -c .htpasswd admin(首次增加用户要带-c,第二次增加用户就不用了)

admin

sudo a2dissite default(关闭默认的虚拟机)
sudo a2ensite trac(启动trac虚拟机)
sudo /etc/init.d/apache2 reload
(让apache重新登陆)

由于使用了域名,则需要在DNS(域名)服务器上将wslnxcnhz0286指向本机即可,如果没有DNS服务器,又想测试一个效果,可以在/etc/hosts文档中加入以下配置:

127.0.0.1 wslnxcnhz0286

[align=left] [/align]
[align=left]安装libapache2-mod-python libapache2-mod-python-doc[/align]
apt-get install libapache2-mod-python libapache2-mod-python-doc
sudo a2enmod python

tracd --port 8000 /var/www/CeoCio

Intall Trac's plugin

安装webadmin
sudo apt-get install python-setuptools
cd /var/www/trac
sudo -u www-data svn co http://svn.edgewall.com/repos/trac/sandbox/webadmin/ cd /var/www/trac/webadmin
sudo -u cisco python setup.py bdist_egg
编 译完成后在dist目录下会产生一个TracWebAdmin-xxx.egg文件,将这一文件拷贝到trac系统的plugins目录。.egg文件为 一个Python软件的打包方式,类似于Java开发EJB时的.ear等文件,在加载这一软件包时Apache会将其内容解压放到 /var/www/.python-eggs目录下,因此如果你还没有创建/var/www/.python-eggs目录需要先创建一个。最后重新加载 Apache配置,WebAdmin的安装就算完成了。安装完WebAdmin后,对于那些有某些admin权限的用户,在登陆到Trac后将在顶总的导
航栏出现"Admin"项,点击进入即可完成一些管理操作。但由于默认的用户都没有admin权限,因此首先要使用trac-admin工具为用户设置权 限,才能用WebAdmin的管理功能。
设置用户组的时候不能出现大写,这样可能会设置失败

安装PRC:

http://trac-hacks.org/wiki/XmlRpcPlugin下载zip包,unzip xmlrpcplugin-r7155.zip解压zip包,到0.10文件夹下sudo python setup.py bdist_egg进行生成egg文件,再sudo cp TracXMLRPC-0.1-py2.5.egg /var/www/CeoCio/plugins/复制到plugins文件夹下sudo chown www-data:www-data TracXMLRPC-0.1-py2.5.egg换所有者,sudo
/etc/init.d/apache2 restart重启apache2就可以了。在http://172.16.4.41/login/xmlrpc就可以看到我们要的界面了
安装Account Manager Plugin类似PRC

安装Estimation and Time Tracking:类似PRC,唯一不同的是最后出 现The Trac Environment needs to be upgraded. Run trac-admin /var/www/CeoCio/ upgrade提示,于是在命令行输入trac-admin /var/www/CeoCio/ upgrade,问题解决

vi /var/www/CeoCio/conf/trac.ini在[ticket]下面加上一句restrict_owner = true使得New Ticket下创建新Ticket时,Assign to:后面由原来的text变成下拉框

最后附上最终的配置文件

/var/www/CeoCio/conf/trac.ini
# -*- coding: utf-8 -*-

[account-manager]

password_file = /var/www/CeoCio/.htpasswd

password_store = HtPasswdStore

[attachment]

max_size = 262144

render_unsafe_content = false

[browser]

downloadable_paths = /trunk, /branches/*, /tags/*

hide_properties = svk:merge

render_unsafe_content = false

[changeset]

max_diff_bytes = 10000000

max_diff_files = 0

wiki_format_messages = true

[components]

acct_mgr.admin.* = enabled

acct_mgr.api.* = enabled

acct_mgr.db.* = enabled

acct_mgr.htfile.* = enabled

acct_mgr.http.* = enabled

acct_mgr.pwhash.* = enabled

acct_mgr.web_ui.* = enabled

acct_mgr.web_ui.emailverificationmodule = disabled

acct_mgr.web_ui.loginmodule = enabled

burndown.* = enabled

burndown.burndown.burndowncomponent = enabled

burndown.burndown_admin_milestones.burndownmilestonesadminpanel = enabled

cc_selector.* = enabled

cc_selector.cc_selector.ticketwebuiaddon = enabled

estimationtools.burndownchart.burndownchart = enabled

estimationtools.hoursinplaceeditor.hoursinplaceeditor = enabled

estimationtools.hoursremaining.hoursremaining = enabled

estimationtools.workloadchart.workloadchart = enabled

flashgantt.flashgantt.flashganttplugin = disabled

iniadmin.* = enabled

talm_importer.* = enabled

talm_importer.importer.importmodule = disabled

timingandestimationplugin.* = enabled

timingandestimationplugin.webui.timingestimationandbillingpage = enabled

trac.notification.notificationsystem = enabled

trac.ticket.notification.ticketnotificationsystem = enabled

tracrpc.* = enabled

tracwysiwyg.* = enabled

webadmin.basics.* = enabled

webadmin.logging.* = enabled

webadmin.perm.* = enabled

webadmin.plugin.* = enabled

webadmin.ticket.* = enabled

webadmin.web_ui.* = enabled

wikiticketcalendarmacro.* = enabled

[header_logo]

alt =

height = -1

link = http://172.16.4.41/
src = common/trac_banner.png

width = -1

[logging]

log_file = trac.log

log_level = INFO

log_type = file

[mimeviewer]

enscript_modes = text/x-dylan:dylan:4

enscript_path = enscript

max_preview_size = 262144

mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb

php_path = php

silvercity_modes =

tab_width = 8

[notification]

always_notify_owner = true

always_notify_reporter = true

always_notify_updater = true

mime_encoding = base64

smtp_always_bcc =

smtp_always_cc =

smtp_default_domain =

smtp_enabled = true

smtp_from = cisco_ceocio_trac@hengtiansoft.com

smtp_password =

smtp_port = 25

smtp_replyto =

smtp_server = mail.hengtiansoft.com

smtp_subject_prefix = __default__

smtp_user =

use_public_cc = False

use_short_addr = false

use_tls = false

[project]

descr = My example project

footer = Visit the Trac open source project at<br /><a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a>

icon = common/trac.ico

name = CeoCio

url = http://172.16.4.41/
[search]

min_query_length = 3

[ticket]

default_component = General

default_milestone = Tag - rev. 2109

default_priority = major

default_resolution = finished

default_severity = S3

default_type = defect

default_version = 2.0

restrict_owner = true

[ticket-custom]

billable = checkbox

billable.label = Billable?

billable.order = 3

billable.value = 1

estimatedhours = text

estimatedhours.label = Estimated Number of Hours

estimatedhours.order = 1

estimatedhours.value = 0

hours = text

hours.label = Add Hours to Ticket

hours.order = 2

hours.value = 0

internal = checkbox

internal.label = Internal?

internal.order = 5

internal.value = 0

totalhours = text

totalhours.label = Total Hours

totalhours.order = 4

totalhours.value = 0

[ticket-workflow]

accept = new -> assigned

accept.operations = set_owner_to_self

accept.permissions = TICKET_MODIFY

leave = * -> *

leave.default = 1

leave.operations = leave_status

pass = testing -> closed

pass.name = Passes Testing

pass.operations = set_resolution

pass.set_resolution = fixed

reassign = new,assigned,needs_work,reopened -> new

reassign.operations = set_owner

reassign.permissions = TICKET_MODIFY

reject = testing -> needs_work

reject.name = Failed testing, return to developer

reopen = closed -> reopened

reopen.operations = del_resolution

reopen.permissions = TICKET_CREATE

resolve = new,assigned,reopened -> closed

resolve.operations = set_resolution

resolve.permissions = TICKET_MODIFY

testing = new,accepted,needs_work,assigned,reopened -> testing

testing.name = Submit to reporter for testing

testing.permissions = TICKET_MODIFY

[timeline]

changeset_long_messages = false

changeset_show_files = 0

default_daysback = 30

ticket_show_details = false

[trac]

authz_file =

authz_module_name =

base_url = http://172.16.4.41
check_auth_ip = true

database = sqlite:db/trac.db

default_charset = iso-8859-15

default_handler = WikiModule

htdocs_location =

ignore_auth_case = false

mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search

metanav = login,logout,settings,help,about

permission_policies = InternalTicketsPolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy

permission_store = DefaultPermissionStore

timeout = 20

[wiki]

ignore_missing_pages = false

render_unsafe_content = false

split_page_names = false
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息