2007年9月10日星期一

# Trac

  • Trac
  • 概要
  • 部署trac
  • 安装apache
  • 安装subversion
  • 安装python
  • 安装 ClearSilver
  • 安装sqlite
  • 安装trac
  • 建立trac环境
  • 创建一个admin用户
  • 为admin用户授权TRAC_ADMIN
  • 为trac安装插件
  • 安装 WebAdmin 插件
  • 安装 TracAccountManager 插件
  • 配置apache为trac服务
  • 配置档案库权限
  • 下载Subversion客户端
  • 建立globle trac.ini
  • Trac

    官方网站 http://trac.edgewall.org/

    概要

    Trac 是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。 Trac 以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件。 Trac 应用力求不影响现有团队的开发过程。

    部署trac

    安装apache

    http://httpd.apache.org/ 下载apache次新版本(apache_2.0.59-win32-x86-no_ssl.msi),并安装。 根据提示输入如下信息:
    Network Domain: yi-dao.com
    Server Name: www
    Admin Email: webmaster@yi-dao.com
    默认安装。桌面右下角有一个运行的apache服务管理器图标(红羽毛和绿三角)。浏览 http://localhost/ ,成功。

    安装subversion

    http://subversion.tigris.org/ 下载subversion次新版本(svn-1.4.2-setup.exe)以及相应的python接口程序(svn-win32-1.4.2_py2.4.exe)。分别默认安装。

    安装python

    http://www.python.org/download/ 下载python次新版本(python-2.4.msi),并安装。默认安装。 从 http://apache.justdn.org/httpd/modpython/win/3.2.8/ 下载mod_python-3.2.8.win32-py2.4.exe,并执行,会提示选择apache的安装路径。 编辑apache的配置文件httpd.conf,在 !LoadModule 段的最后加入以下几行信息后保存。
    LoadModule python_module modules/mod_python.so

    安装 ClearSilver

    http://www.clearsilver.net/downloads/ 下载最新版本(clearsilver-0.9.14.win32-py2.4.exe)。默认安装。

    安装sqlite

    http://www.sqlite.org/download.html 下载最新版本(sqlite-3_3_12.zip)。原来这个是不需要安装的。 从 http://initd.org/tracker/pysqlite 下载pysqlite-2.3.2.win32-py2.4.exe,但是这个网站不能访问,通过Google查找到 压缩包: pysqlite-2.3.2.win32-py2.4.exe.7z。使用这个压缩包中的文件来执行安装。

    安装trac

    http://www.edgewall.com/ 下载trac最新版本(trac-0.10.3.win32.exe),并默认安装。

    建立trac环境

    在E:盘(我的数据专用存储设备)上创建文件夹:(E:\tracdata\home)用来作为我的第一个trac环境。 从命令行窗口执行如下命令以创建一个Subversion数据环境:
    svnadmin create E:\tracdata\home\repo
    从命令行窗口执行如下命令以创建一个Trac数据环境:
    cd C:\python24
    python Scripts\trac-admin E:\tracdata\home\trac initenv
    根据提示输入如下信息:
    Project Name [My Project]> home
    Database Connection String [sqlite:db/trac.db]>
    Repository type [svn]>
    Path to repository [/path/to/repos] > E:\tracdata\home\repo
    Templates directory [C:\Python24\share\trac\templates]>

    创建一个admin用户

    使用apache的用户密码工具来创建一个用户admin,并保存到 E:\tracdata\auth-file 中:从命令行执行以下命令:
    cd c:\prog*\apache*\apache*\bin
    htpasswd.exe -cm E:\tracdata\auth-file admin
    根据提示输入密码,用户文件就创建好了,是一个文本文件,密码被加密了。命令的参数 -cm 表示创建文件并使用md5加密密码。如果今后需要添加一个新的用户,则只需要使用参数 -m 就行了。

    为admin用户授权TRAC_ADMIN

    针对刚创建的trac环境,需要为admin用户授权为管理员,在命令行执行操作:
    cd c:\python24
    python Scripts\trac-admin E:\tracdata\home\trac permission →
    add admin TRAC_ADMIN

    为trac安装插件

    详细信息请参见 http://trac.edgewall.org/wiki/TracPlugins 。从 http://peak.telecommunity.com/dist/ez_setup.py 下载并保存为 ez_setup.py 文件。可以直接执行这个python程序文件。 从 http://trac.edgewall.org/wiki/PluginListhttp://trac-hacks.org/wiki/0.10 上可以找到很多有用的插件。

    安装 WebAdmin 插件

    http://trac.edgewall.org/wiki/WebAdmin 下载 !TracWebAdmin-0.1.2dev_r4240-py2.4.egg.zip 并把文件名最后的.zip删除,然后安装这个插件。有两种方式来安装trac插件,第一种是为每个trac环境分别安装,只需要把egg文件复制到 trac环境文件夹plugins下,并设置apache配置属性 SetEnv TRAC_ENV /path/to/projenvSetEnv PYTHON_EGG_CACHE /path/to/dir。第二种方式为所有的trac环境安装插件,需要运行命令:
    C:\python24\Scripts\easy_install C:\tools\trac →
    \TracWebAdmin-0.1.2dev_r4240-py2.4.egg
    然后配置trac环境的 trac.ini 文件,并修改如下内容:
    [components]
    webadmin.* = enabled

    安装 TracAccountManager 插件

    浏览信息 http://trac-hacks.org/wiki/AccountManagerPlugin ,可以知道如何安装这个插件:
    C:\python24\Scripts\easy_install http://trac-hacks.org →
    /svn/accountmanagerplugin/0.10
    然后配置为 HtPasswdStore 。即编辑trac环境的trac.ini文件,并修改如下内容:
    [components]
    webadmin.* = enabled
    acct_mgr.htfile.HtPasswdStore = enabled
    acct_mgr.admin.AccountManagerAdminPage = enabled
    acct_mgr.web_ui.AccountModule = enabled
    trac.web.auth.LoginModule = disabled
    acct_mgr.web_ui.LoginModule = enabled
    acct_mgr.web_ui.RegistrationModule = enabled

    [account-manager]
    ; configure the plugin to store passwords in the htpasswd format:
    password_format = htpasswd
    ; with Trac 0.10 use this instead:
    password_store = HtPasswdStore

    ; the file where user accounts are stored
    ; the webserver will need write permissions to this file
    ; and its parent folder
    password_file = E:/tracdata/auth-file

    配置apache为trac服务

    编辑apache的httpd.conf配置文件,为trac环境和相应的subversion档案库配置url路径:

    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv E:/tracdata/home/trac
    PythonOption TracUriRoot /home



    DAV svn
    SVNPath E:/tracdata/home/repo

    AuthType Basic
    AuthName "Home Subversion Repository"
    AuthUserFile E:/tracdata/auth-file

    Require valid-user

    AuthzSVNAccessFile E:/tracdata/home/repo/conf/authz

    配置档案库权限

    修改 E:/tracdata/home/repo/conf/authz,以添加admin的访问权限:
    [/]
    admin = rw
    同时修改 E:/tracdata/home/trac/conf/trac.ini :
    [trac]
    authz_file = E:\tracdata\home\repo\conf\authz

    下载Subversion客户端

    http://tortoisesvn.tigris.org/ 下载subverion客户端TortoiseSVN-1.4.3.8645-win32-svn-1.4.3.msi,并安装。

    建立globle trac.ini

    C:\Python24\share\trac 下创建目录conf并将 E:/tracdata/home/trac/conf/trac.ini 复制到这个目录下,然后删除一些与当前trac环境相关的特有属性。
    # -*- coding: utf-8 -*-

    [attachment]
    max_size = 262144
    render_unsafe_content = false

    [browser]
    downloadable_paths = /trunk, /branches/*, /tags/*
    hide_properties = svk:merge

    [changeset]
    max_diff_bytes = 10000000
    max_diff_files = 0
    wiki_format_messages = true

    [header_logo]
    alt =
    height = -1
    link = http://example.org/
    src = common/trac_banner.png
    width = -1

    [logging]
    log_file = trac.log
    log_level = DEBUG
    log_type = none

    [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 = false
    always_notify_reporter = false
    always_notify_updater = true
    mime_encoding = base64
    smtp_always_bcc =
    smtp_always_cc =
    smtp_default_domain =
    smtp_enabled = false
    smtp_from = trac@localhost
    smtp_password =
    smtp_port = 25
    smtp_replyto = trac@localhost
    smtp_server = localhost
    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
    href="http://trac.edgewall.org/">http://trac.edgewall.org/
    icon = common/trac.ico
    name = globle-trac
    url = http://example.org/

    [search]
    min_query_length = 3

    [ticket]
    default_component =
    default_milestone =
    default_priority = major
    default_type = defect
    default_version =
    restrict_owner = false

    [timeline]
    changeset_long_messages = false
    changeset_show_files = 0
    default_daysback = 30
    ticket_show_details = false

    [trac]
    authz_file =
    authz_module_name =
    base_url =
    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_store = DefaultPermissionStore
    repository_dir =
    repository_type = svn
    # request_filters =
    # templates_dir =
    timeout = 20

    [wiki]
    ignore_missing_pages = false
    split_page_names = false

    [components]
    webadmin.* = enabled
    acct_mgr.htfile.HtPasswdStore = enabled
    acct_mgr.admin.AccountManagerAdminPage = enabled
    acct_mgr.web_ui.AccountModule = enabled
    trac.web.auth.LoginModule = disabled
    acct_mgr.web_ui.LoginModule = enabled
    acct_mgr.web_ui.RegistrationModule = enabled

    [account-manager]
    # authentication_url =
    generated_password_length = 8
    # htdigest_realm =
    password_format = htpasswd
    password_store = HtPasswdStore
    password_file = E:/tracdata/auth-file

    没有评论: