[Linux]Install And Configure Trac

第一步: 安装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 (我使用的是方法二)
方法一:
初始化Trac系统后,还需要在Apache中进行相应的配置才能使用。由于Trac使用CGI,因此首先要将Trac的CGI程序(/usr/share/trac/cgi-bin/trac.cgi)部署到Apache的cgi-bin目录中(做个符号链接即可)。过程如下:

cd /usr/lib

sudo chown -R www-data:www-data cgi-bin

cd cgi-bin

sudo -u www-data ln -s /usr/share/trac/cgi-bin/trac.cgi trac.cgi
然后在Apache配置中加入Trac站点的配置信息,在Ubuntu下站点配置通常放在/etc/apache2/sites-available/default这一文件中,可编辑该文件加入以下内容(这些内容在Trac的说明文档中都有,在/usr/share/doc/trac/README.Debian文件中):
 Alias /trac/ "/usr/share/trac/htdocs/"
  
        Options Indexes MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
  

  
        SetEnv TRAC_ENV "/var/www/trac"
  

  
        AuthType Basic
        AuthName "trac"
        AuthUserFile /etc/apache2/trac.htpasswd
        Require valid-user
  

上面配置使用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
内容如下:


    ServerName wslnxcnhz0286
    ServerAdmin [email protected]
    DocumentRoot /var/www/CeoCio
   
        SetHandler mod_python
        PythonInterpreter main_interpreter
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv /var/www/CeoCio/
        PythonOption TracUriRoot /
        SetEnv PYTHON_EGG_CACHE /tmp
   

   
        AuthType Basic
        AuthName "CMET_WZU Trac Server"
        AuthUserFile /var/www/CeoCio/.htpasswd
        Require valid-user
   


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


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

 
安装libapache2-mod-python libapache2-mod-python-doc
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 = [email protected]
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
http://trac.edgewall.org/
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


你可能感兴趣的:(Linux)