`
gdfloyd
  • 浏览: 74172 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Trac安装过程记录

阅读更多

Trac 安装过程记录

 

最近拿下载Trac1.0来安装到自己RedHat9 Linux VM上玩玩,有种找虐的感觉:不像MS的风格给你一个庞大的东东,让你一路只要点下一步便可,Trac毕竟是个免费的东西,安装起来依赖比较多,依赖又来自不同的Open Source Party,安装的时候,不是缺胳膊就是少腿,要把这些依赖分别一一安装。整个安装过程有点繁琐,决定把自己在Linux VM下整个折腾过程记录下来,供那些不熟悉Linux OS和不熟悉Linux 下软件安装的人,包括我自己以后参考。本文主要参考:

 

Trac官方安装指引文档 http://trac.edgewall.org/wiki/TracGuide
PostgeSQL官方文档 http://www.postgresql.org/docs/manuals/
Apache服务器官方文档 http://httpd.apache.org/docs/2.2
Apache服务器的Python适配模块 http://code.google.com/p/modwsgi/
LDAP验证:http://www.openldap.org/doc/admin24/quickstart.html 
Python模块安装工具SetupTools:http://pypi.python.org/pypi/setuptools
Python模块Genshi:http://genshi.edgewall.org/wiki/Download
Python模块Babel:http://babel.edgewall.org/wiki/Download
Python模块Pygement:http://pypi.python.org/pypi/Pygments/1.6rc1#downloads
Python模块Psycopg2: http://pypi.python.org/pypi/psycopg2

 

先介绍一下TracTrac 一个简单的基于web的软件项目管理工具,目的是有效简化问题、改进及整体进度的追踪处理,设计目标是尽可能帮助开发人员摆脱流程文化桎梏。这是官方说法。这里提到的重点是简单,相对于其他臃肿的软件,Trac核心功能很精简,因而安装包只有不到2.9M。但是,整个trac的安装依赖比较多,这些依赖本身也是一些Open Source的东西,安装配置起来比较繁琐,需要一步步来。

 

  • 编译准备。要用到gcc命令来进行编译,要先找到安装盘里面的gcc相关的rpm然后安装。
$ rpm -ivh binutils-2.13.90.0.18-9.i386.rpm
$ rpm -ivh cpp-3.2.2-5.i386.rpm
$ rpm -ivh gcc-3.2.2-5.i386.rpm
$ rpm -ivh gcc-c++-3.2.2-5.i386.rpm
$ rpm -ivh gcc-g77-3.2.2-5.i386.rpm
$ rpm -ivh gcc-gnat-3.2.2-5.i386.rpm
$ rpm -ivh glibc-devel-2.3.2-27.9.7.i386.rpm
$ rpm -ivh glibc-kernheaders-2.4-8.10.i386.rpm
$ rpm -ivh libstdc++-devel-3.2.2-5.i386.rpm

 

  • Trac是使用Python语言来编写的,要先安装Python。我安装的版本是Python2.7。下载解压运行如下: 
$ tar –zxvf Python-2.7.3.tgz
$ cd Python-2.7.3
$ ./confugre –prefix=/usr/local/python-2.7.3
$ make
$ make install

 

make的过程可能有点久,要耐心等待。完成之后在我的Redhat9的VM上会出现如下提示

写道
 Python build finished, but the necessary bits to build these modules were not found:
 _bsddb _curses _curses_panel
 _sqlite3 _ssl _tkinter
 bsddb185 bz2 dbm
 gdbm readline sunaudiodev
 zlib
 To find the necessary bits, look in setup.py in detect_modules() for the module's name.

 

根据上面的信息,某些Python模块未能构建,如Berkery DB,SQLite3,readline和ssl等这样一些Python模块。这些基础模块在系统上没有找到,需要先安装。SqlLite3和Berkeley的源码可以下载来安装即可,具体步骤类似GNU软件安装(make)。另外的模块,可以在安装盘里可以找到相关的rpm,不管有用没用全给它安装上。

 

rpm -ivh readline-4.3-5.i386.rpm
rpm -ivh readline-devel-4.3-5.i386.rpm
rpm -ivh openssl-0.9.7a-20.2.i386.rpm
rpm -ivh openssl-devel-0.9.7a-20.2.i386.rpm
rpm -ivh ncurses-5.3-4.i386.rpm
rpm -ivh ncurses-devel-5.3-4.i386.rpm
rpm -ivh krb5-devel-1.2.7-14.i386.rpm
rpm -ivh krb5-libs-1.2.7-14.i386.rpm
rpm -ivh gdbm-1.8.0-20.i386.rpm
rpm -ivh gdbm-devel-1.8.0-20.i386.rpm
rpm -ivh zlib-1.1.4-8.i386.rpm
rpm -ivh zlib-devel-1.1.4-8.i386.rpm
rpm -ivh tcl-html-8.3.5-88.i386.rpm
rpm -ivh tcllib-1.3-88.i386.rpm
rpm -ivh tclx-8.3-88.i386.rpm
rpm -ivh tk-8.3.5-88.i386.rpm
rpm -ivh tkinter-2.2.2-26.i386.rpm

 

运行make clean之后再make一次,以为会成功,谁知还是爆错,提示信息如下:

 

写道
Failed to build these modules:
_tkinter
error: Failed dependencies: libtix8.1.8.3.so is needed by tkinter-2.2.2-26

 在安装盘里面找到这个tix模块进行再安装,依赖还是没准备好,错误信息如下:

写道
$ rpm -ivh tix-8.1.4-88.i386.rpm
 warning: ../Python-Install/tix-8.1.4-88.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
 error: Failed dependencies:
 itcl is needed by tix-8.1.4-88
 libitcl3.2.so is needed by tix-8.1.4-88
 libitk3.2.so is needed by tix-8.1.4-88

 

在安装盘里找到itcl-3.2-88.i386.rpm安装之后,那些so还是没找到,让我好是郁闷。Google了一下发现,这是一些Linux下GUI模块。后面两个一个是旧版本DB,另一个是sun的音频设备,相信web-base的Trac不会用的,我就更不会用,决定无视之,就把那个tkinter卸载掉后,重新make clean和make,最后出现如下提示。

写道
Python build finished, but the necessary bits to build these modules were not found:
_tkinter           bsddb185           sunaudiodev    
To find the necessary bits, look in setup.py in detect_modules() for the module's name

 

我的VM上已经有个旧版本的python,为了不与原来的混淆,最好就是修改执行目录下的连接文件。先把原来的/usr/local/python重命名为/usr/local/python2.2.2后运行,这时候显示才是新版本的python

$ ln -s /usr/local/python-2.7.3/bin/python2.7 /usr/bin/python
$ ln -s /usr/local/python-2.7.3/bin/python2.7 /usr/bin/python2.7
$ python

  

写道
Python 2.7.3 (default, Dec 31 2012, 01:38:08)
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

 到此Python 2.7安装完成了。

 

  • 安装Trac依赖的Python模块

Setuptools:必须,Version >= 0.6,Python模块安装工具。下载egg文件后运行:

# sh setuptools-0.6c11-py2.7.egg 

 

  Genshi:必须,Version >= 0.6,用来根据模版将数据转换为HTML输出。下载Source文件后在解压目录:

# python setup.py install

 
  Babel:可选,Version >= 0.9.5,用来提供多语言支持。

# python setup.py install

 

  Pygement:可选,用作代码语法高亮显示。下载Source文件后运行命令后在解压目录下运行命令:

# python setup.py install

 
  Psycopg2:可选,PostgreSQL的Python的适配器。下载Python的Adapter Source文件在解压目录下运行命令:

 

# python setup.py build
# python setup.py install

 

在我的VM上会出现这样的错误:

写道
cc1: unrecognized option `-Wdeclaration-after-statement' error: command 'gcc' failed with exit status 1

 

按照提示,貌似是当前GCC版本不支持某个命令参数。怀疑是当前安装的GCC版本不支持此参数。Google了一下,获知此参数是GCC命令编译兼容性参数。于是在安装目录grep了一下declaration-after-statement,发现有setup.py文件下面有类似内容。没估错的话,元凶就在这里:

 

def finalize_linux2(self):
     """Finalize build system configuration on GNU/Linux platform."""
        # tell piro that GCC is fine and dandy, but not so MS compilers
     for extension in self.extensions:
         extension.extra_compile_args.append(
             '-Wdeclaration-after-statement')

finalize_linux3 = finalize_linux2

 

把这段内容前面加#注释后保存,再重新运行Python的编译安装命令便可正常通过。

 

  • 安装Trac。

到官网下载并解压源码来安装Trac,解压并并运行:

 

$ tar –zxvf Trac-1.0.tar.gz
$ cd Trac-1.0
$ python ./setup.py install

 

这个命令会安装trac-admin和tracd命令行工具到Python安装目录下。trac-admin工具是用来创建项目环境的,而tracd工具是一个Trac内建的Web服务器。这两个工具,可以在Python安装路径子目录bin下面找到,为了以后方便使用,把它们添加到执行目录中去。

 

  • 安装PostreSQL数据库和配置本地信任连接。(可选)

Trac支持SQLite,PostgreSQL和MySQL这三种数据库,默认采用SQLite。SQLite是嵌入型数据库,而PostgeSQL为我们准备的是通常商业提供的客户端/服务器关系型数据库。这里简单介绍一下PostgreSQL的配置。一般有一个OS服务账户postgres,并且使用这个超级账户来安装初始化数据库目录和进行数据库相关配置。

 

用数据库superuser连接到DB,进入命令行psql命令行:

 

[postgres]$ psql 
写道
psql (9.2.2)
Type "help" for help.

postgres=#

  

 创建数据库。Trac推荐使用UTF-8编码设置,PostgreSQL默认是采用OS编码设置的,可用在命令行用-e指定。

 

postgres=# create database –e UTF-8 tracdb;

 

   创建用户并设定登陆密码

 

postgres=# create user trac password ‘dbpwd’;

  

运行命令便可显示数据库信息

 

[postgres]$ psql –l 

 

由于我设置的数据库服务和Trac服务都在同一台VM上,我在这里使用PostgreSQL的本地信任验证,也可以说是OS系统用户验证。默认情况下PostreSQL本地信任验证是启用,如果没有启用,可以在PostreSQL初始化目录下的配置文件pg_hba.conf,添加这样一行并可,意为允许用户trac通过本地信任连接到名为tracdb的数据库:

 

local		tracdb	trac			trust

 

接着,创建OS系统用户验证并设定密码。之后我将会使用这个用户来通过数据库本地信任验证。

 

$ useradd trac
$ passwd trac

 

最后,设定PGHOST环境变量,用于保存本地连接的unix socket文件的目录。目录路径可在PostgreSQL 的cluster目录下postgresql.conf里面找到,我这里设为/var/postgres。这时候,便可在trac用户的命令行下用psql命令连接,而无需键入密码。

 

[trac] $ PGHOST = /var/psotgres/ \
            export PGHOST
[trac] $ psql tracdb

 

  • 创建Trac项目环境

所谓Trac项目环境是指用来保存项目数据和配置以及Web上传附件保存的默认目录,该目录可能会包含SQLite的数据库文件(如使用SQLite存储)。要注意这个项目路径仅支持ASCII编码字符,Unicode编码字符在这里会有问题。命令行下运行:

 

[trac] $ trac-admin /path/to/myproject initenv

 

如果是多个项目同时启动:

 

[trac] $ tracd -p 8080 /path/to/project1 /path/to/project2

 

又比如,目录下每个子目录都是一个project,这些project 同时启动:

 

[trac] $ tracd -p 8080 -e /path/to/project

 

如果此Trac实例仅支持单项目,那么在Trac首页就不会列出项目列表。可运行如下:

 

[trac] $ trac-admin -s /path/to/myproject initenv

 

注意我在这里运行命令用户都是trac,这样运行时就不会项目环境目录就权限阻止问题了。上面的初始化目录命令运行后,会提示输入项目名称和数据库连接路径。如采用默认的SqLite文件数据库可输入:

 

写道
sqlite:db/trac.db

 

使用PostgreSQL的本地信任连接的话,就输入如下连接字符串。这里的连接字符串里面忽略了密码,主机名和端口自动使用PostgreSQL默认。采用这种方式要注意的是,运行trac服务的OS账户必须是trac,否则就未必能树立连接DB。

写道
postgres://trac@/tracdb

 

如果PostgreSQL数据库是使用TCP/IP连接,并且数据库用户设定了密码,可用如下:

 

写道
postgres://trac:dbpwd@l27.0.0.1:5432/tracdb

 

如果是远程连接,把127.0.0.1替换为远程服务器的Host/IP。Trac会默认使用的PostgeSQL Schema是public,如果需要指定schema可以这样指定:

写道
postgres://trac: dbpwd @l27.0.0.1/tracdb?schema=myshcema

 

初始化目录命令运行完毕,即可发现目录下创建了一系列文件/目录,这些目录文件在需要定制trac的时候会用到。

 

README 简介
VERSION  Trac版本
attahcments 上传附件保存位置
conf/trac.ini Trac配置文件
db/trac.db SQLite的DB文件,默认使用SQLite作为存储
htdocs 存放页面引用的静态资源(image/css etc)
log 日志目录
plugins 插件目录
templates/site.html 自定义页面显示的模版

  

  •  Web服务器部署和验证授权

Trac自身内建Web服务器,如果不需要使用到HTTP服务器提供的用户安全和验证设置,缓存设置,性能设置等等,这时候可以使用Trac自带的服务器。运行命令即可启动:

 

[trac] $ tracd –p 8000 /path/to/myproject

 

如有多个项目可放在同一父级目录下,用不同子目录来区分:

 

 [trac] $ tracd -p 8000 /path/to/project1 /path/to/project2

 

浏览器输入如下即可访问trac页面了:

 

写道
http://VM-IP:8000/

 

进去之后可以在里面找到Trac的详细文档介绍具体的trac模块:Wiki知识库的使用,工作流配置和用户自定义等等。但就是找不到核心功能票据管理页面。那是尚未登陆的缘故,默认情况下,未登陆的匿名用户无法浏览和添加修改票据。如果尝试登陆,页面会出现如下错误提示:

 

写道
Authentication information not available. Please refer to the installation documentation.

 

对于这个问题,Trac提供一种简单的名为独立验证的方式来解决。手动创建一个验证文件用来保存用户名和密码,可命名为digest.auth,并在tracd命令里面指定即可。命令如下:

 

[trac] $ tracd –p 8000 --auth=projectDirName,/path/to/digest.auth,trac /path/to/projectDirName

 

如有多个项目,可以这样:

 

[trac] $ tracd -p 8080 \
   --auth="project1,/path/to/digest.auth,trac" \
   --auth="project2,/path/to/digest.auth,trac" \
   /path/to/project1 /path/to/project2

 

digest.auth可用如下Python脚本,可先保存成为trac-digest.py来生成。

 

from optparse import OptionParser
# The md5 module is deprecated in Python 2.5
try:
    from hashlib import md5
except ImportError:
    from md5 import md5
realm = 'trac'

# build the options
usage = "usage: %prog [options]"
parser = OptionParser(usage=usage)
parser.add_option("-u", "--username",action="store", dest="username", type = "string",
                  help="the username for whom to generate a password")
parser.add_option("-p", "--password",action="store", dest="password", type = "string",
                  help="the password to use")
parser.add_option("-r", "--realm",action="store", dest="realm", type = "string",
                  help="the realm in which to create the digest")
(options, args) = parser.parse_args()

# check options
if (options.username is None) or (options.password is None):
   parser.error("You must supply both the username and password")
if (options.realm is not None):
   realm = options.realm
   
# Generate the string to enter into the htdigest file
kd = lambda x: md5(':'.join(x)).hexdigest()
print ':'.join((options.username, realm, kd([options.username, realm, options.password])))

 

然后在命令行调用这个Python文件便可生成digest.auth文件。

 

[trac] $ python trac-digest.py -u username -p password >> /path/to/digest.auth

 

我们通过这个命令在digest.auth里面指定需要添加访问Trac的用户及其密码。用户名和码就保存在这个文件里面,trac就会去查找比对这个文件。这时候我们再重新登陆便可进入系统浏览添加修改票据的权限。但是,仍然无法浏览管理员页面。下面命令是为admin用户添加管理员权限:

 

[trac] $ trac-admin /path/to/myprojectDir permission add admin TRAC_ADMIN

 

运行完之后便可用admin用户登陆,打开管理员面板。里面有一些基础数据的设置和权限设置了。显然易见,独立验证方式的用户维护任务繁重,诸如新增用户重置密码等等,都要管理员去维护一个具有敏感信息digest.auth的文件,非常不便。发现有这样一个Trac插件来管理用户的,推荐安装: http://trac-hacks.org/wiki/AccountManagerPlugin

 

以上所说的就是Trac的独立验证。独立验证方式适合于小型应用或者测试开发环境,如果需要对HTTP服务有全面控制,如在Web服务器配置AD验证来实现类似的单点登陆,就需要将Trac部署到Web服务器上。下面就来安装Apache服务器和LDAP下载后并解压源码包然后运行编译并安装

 

$ tar zxvf httpd-2.2.23.tar
$ cd httpd-2.2.23
$ ./configure --with-included-apr --prefix=/usr/local/apache2 \
--enable-proxy \
--enable-proxy-ajp \
--enable-authnz-ldap \
--enable-ldap \
--enable-ssl
	$ make
	$ make install

 

在上面的配置命令里面,指定了要安装LDAP模块,因为我后面将会AD验证。运行之后,出现如下提示:

写道
mod_authnz_ldap.c:41:2: #error mod_authnz_ldap requires APR-util to have LDAP support built in. To fix add --with-ldap to ./configure.

 

这个提示还是蛮清晰的,就是在命令里面加上--with-ldap的Option在运行:

 

 

./configure --with-included-apr --prefix=/usr/local/apache2 --with-ldap \
--enable-proxy \
--enable-proxy-ajp \
--enable-authnz-ldap \
--enable-ldap \
--enable-ssl

 

结果在configure的时候没错了,在make的时候又爆错了,按照提示貌似需要先安装LDAP模块才能继续。于是到OpenLDAP官网下载源码包后解压并运行:

 

$ tar –zxvf openldap-2.4.33.tgz
$ cd openldap-2.4.33
$ ./configure
$ make depend
$ make 
$ make install

 

很不幸,配置命令运行出错,错误信息如下:

 

写道
configure: error: BerkeleyDB version incompatible with BDB/HDB backends

 

OpenLDAP会使用Berkeley作为后台存储,而当前安装的Berkeley DB版本不被OpenLDAP支持。在装Python的时候,其实我已经安装了一个Berkeley,不幸这个天煞的版本不被OpenLDAP支持,于是我到这里去再下载了当前一个最新的版本来试试:http://download.oracle.com/otn/berkeley-db/db-5.3.21.tar.gz 。

 

$ ./dist/configure
$ make
$ make install

 

Berkeley安装完毕后,继续安装openldap还是存在上面的同样错误。仔细查看输出信息发现如下的警告信息:

 

写道
checking openssl/ssl.h usability... no
checking openssl/ssl.h presence... no
checking for openssl/ssl.h... no
checking gnutls/gnutls.h usability... no
checking gnutls/gnutls.h presence... no
checking for gnutls/gnutls.h... no
checking nssutil.h usability... no
checking nssutil.h presence... no
checking for nssutil.h... no
configure: WARNING: Could not locate TLS/SSL package
configure: WARNING: TLS data protection not supported!

 

从这个提示看SSL包没能找到,找啊找发现OpenLDAP安装目录里面有个config.log,似乎有所发现:

 

写道
configure:15461: checking openssl/ssl.h usability
configure:15461: cc -c -I/usr/local/ssl/include/openssl conftest.c >&5
In file included from /usr/include/openssl/ssl.h:179,
from conftest.c:126:
/usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory
In file included from /usr/include/openssl/ssl.h:179,
from conftest.c:126:
/usr/include/openssl/kssl.h:134: parse error before "krb5_enctype"
/usr/include/openssl/kssl.h:136: parse error before '*' token

 

原来是系统找不到krb5.h,于是把卡巴罗斯安装目录下的krb5.h连接到inlcude目录下:

 

ln -s /usr/kerberos/include/krb5.h /usr/include/openssl/krb5.h

 

重新运行OpenLDAP的配置命令会发现仍然出错,那是卡巴罗斯的头文件还需要引用com_err.h和profile.h这两个头文件,把这两个头文件也连接到include目录:

 

ln -s /usr/kerberos/include/com_err.h /usr/include/com_err.h
ln -s /usr/kerberos/include/profile.h /usr/include/profile.h

 

再重新configure,这时候ssl模块找不到的警告便消失了。由此我得到启发:OpenLDAP还在引用旧有版本的BerkeleyDB头文件。

 

$ ll /usr/include | grep db

 

写道
cxx_common.h -> db4/cxx_common.h
cxx_except.h -> db4/cxx_except.h
db_185.h -> db4/db_185.h
db4
db_cxx.h -> db4/db_cxx.h
db.h -> db4/db.h

 

于是把原来的连接文件删除,然后加上自己的新版本连接文件

 

rm /usr/include/db.h
rm /usr/include/db_cxx.h
ln -s /usr/local/BerkeleyDB.5.3/include/db_cxx.h /usr/include/ db_cxx.h
ln -s /usr/local/BerkeleyDB.5.3/include/db.h /usr/include/ db.h

 

同样,我把/usr/lib下的连接库文件修改为指向BerkerleyDB5.3目录下的。

 

写道
libdb-5.3.la -> /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.la
libdb-5.3.so -> /usr/local/BerkeleyDB.5.3/lib/libdb-5.3.so
libdb.a -> /usr/local/BerkeleyDB.5.3/lib/libdb.a
libdb.so -> /usr/local/BerkeleyDB.5.3/lib/libdb.so

 

最后重新安装OpenLDAP,再重新安装Apache就可以顺利通过了。

 

$ ./configure --with-included-apr --prefix=/usr/local/apache2 \
--enable-proxy \
--enable-proxy-ajp \
--enable-authnz-ldap \
--enable-ldap \
--enable-ssl
$ make clean
$ make
$ make install

 

至此,Apache服务器和LDAP就准备好了。接下来我在自己的Windows Server 上启用AD服务,在AD里面添加了一个trac-user的域组和两个域用户,并把两个域用户加入域组中去。如果Windows不是Server版本或者没有安装盘去安装的话,可以去安装ADAM来玩玩,可以让动态目录服务以应用程序方式启动:http://www.microsoft.com/zh-cn/download/details.aspx?id=4201

 

下面继续安装mod_wsgi模块。这个Apache模块是Python应用程序在Apache下运行的适配器。mod_wsgi是用C语言编写的,用以代替性能低下的mod_python。因而无需安装mod_python。根据mod_wsgi文档,如果Apache已经安装了mod_python模块的话,反而会引入一些兼容问题。mod_wsgi的安装步骤如下:

 

$ tar –zxvf mod_wsgi-3.4.tar.gz
$ cd mod_wsgi-3.4
$ ./configure

 

在我机器上出现如下错误提示:

 

写道
checking for apxs2... no
checking for apxs... no
checking Apache version... ./configure: line 1: apxs: command not found
./configure: line 1: apxs: command not found
./configure: line 1: apxs: command not found
./configure: line 1: /: is a directory
checking for python... /usr/bin/python
./configure: line 1: apxs: command not found
configure: creating ./config.status
config.status: error: cannot find input file: Makefile.in

 

检查之后发现,那是我的apache没有安装在默认位置/usr/local/apache,以致找不到这个apache命令apxs。可以用with-apxs参数指定Apache 服务器安装位置下的apxs,命令类似:

 

$ ./configure --with-apxs=/path/to/apache/bin/apxs

 

$ make
$ make install

 

 安装完毕,会出现信息提示modules/mod_wsgi.so已经安装到Apache服务器安装位置的modules子目录下。接着使用trac-admin命令生成wsgi脚本:

 

[trac] $ trac-admin /path/to/project/env deploy /path/to/deploy/

 

执行之后便会在目录/path/to/deploy/cgi-bin下面生成mod_wsgi需要用到的trac.wsgi脚本,以及apache服务器需要连接到的一些静态资源诸如image/css/js。打开这个脚本,在里面可以看到,它设定了trac项目路径和trac的egg文件解压目录以供apache的wsgi模块使用。最后在Apache Web服务器配置文件conf/httpd.conf中加入如下配置指令:

 

写道
DocumentRoot /path/to/project_env/htdocs/
Alias /trac/chrome/common /path/to/deploy/htdocs/common
Alias /trac/chrome/site /path/to/deploy/htdocs/site

WSGIScriptAlias /trac /path/to/deploy/cgi-bin/trac.wsgi
WSGIDaemonProcess trac user=trac group=trac threads=25

<Directory /home/trac/apache>
    WSGIProcessGroup trac 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all
</Directory>

<Location /trac/login> 
    Order deny,allow 
    AuthType Basic 
    AuthName "Trac" 
    AuthBasicProvider "ldap" 
    AuthLDAPURL "ldap://Win-IP:389/DC=welsney,DC=local?sAMAccountName?sub?(objectClass=user)" 
    authzldapauthoritative Off 
    AuthLDAPBindDN domainName\\domainLoginProfile1 
    AuthLDAPBindPassword " domainLoginProfile1password" 
    Require ldap-group CN=trac-user,CN=Users,DC=welsney,DC=local
</Location>

  

由于我是使用信任连接去连接数据库的,这里设定使用了mod_wsgi模块的运行用户为trac。最后就是启动/重启Apache服务器便可使用AD验证登陆Apache下的Trac了。Cheer !

 

$ apachectl –k start
$ apachectl –k graceful

 

分享到:
评论

相关推荐

    trac汉化安装程序

    在这个“trac汉化安装程序”压缩包中,包含的是Trac的中文版安装文档和相关组件,旨在帮助用户更方便地在中国语言环境下进行Trac的安装和使用。 首先,我们要了解Trac的基本概念。Trac是一个基于Web的项目管理平台...

    apache+svn+trac安装软件

    Apache、Subversion(SVN)和Trac是一个强大的版本控制系统和项目管理工具...这个过程中可能涉及到的文件包括Apache的配置文件、Subversion的仓库配置以及Trac的环境配置文件,确保每个环节都正确无误是成功的关键。

    Trac安装包

    Trac能够紧密集成版本控制系统,如Subversion(SVN),从而为开发者提供了一个透明的工作环境,便于他们追踪代码更改、管理任务、记录缺陷以及跟踪项目进度。 Trac-0.11b1是Trac的一个早期版本,发布于2007年,包含...

    Windows环境下Collabnet_Subversion_Edge与Trac集成安装方法

    Trac 是一个轻量级的项目管理工具,主要用于跟踪软件开发过程中的问题、变更记录等信息,并且可以与 SVN 等版本控制系统紧密结合,实现项目的高效管理。 #### 四、集成安装步骤 为了实现 Collabnet Subversion ...

    SVN+Trac的配置笔记

    - **日志记录**:在`logging`部分,可以设置日志文件路径(例如`log_file = trac.log`)和日志级别(例如`log_level = DEBUG`),确保TRAC的日志信息被正确记录。 - **通知设置**:在`notification`部分,你可以...

    windows下trac系统t的安装及配置

    2. **问题追踪**:Trac 支持创建和追踪 bug、功能请求等,帮助项目团队更好地管理软件开发过程中的问题。 3. **Wiki**:内置的 Wiki 功能允许团队成员轻松创建和编辑文档,有助于知识共享和项目文档管理。 4. **高度...

    Trac-1.0.1.win32

    在下载的Trac-1.0.1.win32.exe文件中,包含了Trac所有必要的组件和配置文件,用户只需运行这个安装程序,按照向导指示进行安装,即可在Windows环境下快速部署Trac服务。安装过程中可能需要配置与项目相关的版本控制...

    Trac应用于项目管理

    3. **知识积累与分享:**Trac的wiki功能帮助团队成员记录解决方案和经验,便于新人快速上手。 **0.4.2. Trac会为成员带来什么?** 1. **明确职责:**通过定义角色和权限,每位成员都能清楚自己的职责范围。 2. **...

    trac api调用测试 c#

    1. `Form1.cs` 和 `Form2.Designer.cs`、`Form2.cs`:这些是Windows Forms应用程序中的界面代码文件。`Form1.cs`可能是主窗体的代码,而`Form2.Designer.cs`和`Form2.cs`可能表示另一个窗体,设计用于与用户交互,...

    Meal-Trac:这是一个使用Javascript的膳食跟踪器的简单CRUD应用程序

    Meal-Trac 是一个基于JavaScript开发的简单CRUD(创建、读取、更新、删除)应用程序,专为膳食跟踪而设计。它允许用户记录、查看、编辑和删除他们的饮食记录,帮助他们更好地管理自己的饮食习惯。这个项目展示了如何...

    Go To Trac Ticket-crx插件

    Go To Trac Ticket是一款专为英语用户设计的浏览器扩展程序,尤其适合于在美国工作或学习的用户。这款插件的核心功能是帮助用户快速、高效地访问Trac项目管理系统的工单(Ticket)详情页面。Trac是一个开源的、基于...

    A flexible trace class for consistent application debug trac

    在IT行业中,调试是开发过程中的重要环节,用于找出并修复程序中的错误。"A flexible trace class for consistent application debug traces" 提供了一种灵活的方法来生成一致的应用程序调试跟踪,帮助开发者更好地...

    TRAC (Tax Reciept Aggrigator Console)-开源

    在TRAC中,每一行CSV数据对应于一个报告或表格的实例,这样就可以方便地导入并批量处理大量记录。 开源软件是指其源代码对公众开放的软件,任何人都可以查看、使用、修改和分发这些代码。TRAC作为开源项目,意味着...

    ffmpeg 安装详解

    ### FFmpeg安装详解 在深入探讨FFmpeg的安装...需要注意的是,上述过程可能根据具体环境的不同有所变化,因此建议参考官方文档进行操作:[FFmpeg Compilation Guide](http://trac.ffmpeg.org/wiki/CompilationGuide)。

    pysqlite-2.4.1.win32-py2.4

    安装这个包后,Trac可以方便地利用SQLite数据库进行任务跟踪、文档管理、时间线记录等功能,无需额外配置复杂的数据库服务器。 在实际应用中,用户需要下载并安装pysqlite-2.4.1.win32-py2.4.exe这个可执行文件,这...

    汽车电子中的丰田ABS /TRAC防滑制动系统主、副节气门位置传感器的识别与检测

    副节气门位置传感器的故障同样会影响TRAC系统的正常工作,并且会在ECU中记录相应的故障码。检测副节气门位置传感器同样需要测量电压和验证开关功能。 为了确保ABS/TRAC防滑制动系统的正常工作,定期对节气门位置...

    VisualSVN-Server-2.1.1

    VisualSVN Server 2.1.1 是一个用于Windows平台的Subversion(SVN)服务器管理工具,它简化了Subversion版本控制系统在企业环境中的安装、配置和管理过程。Subversion是一个广泛使用的开源版本控制系统,它允许用户...

    深度学习领域yolov5算法在深海海星目标检测(带数据集)-8、yolov5-yolox-ensemble-with-trac

    带数据集很好运行,主页有搭建环境过程。主页有更多源码。 数据集描述如下: 在这场比赛中,您将通过在大屏障礁周围的不同时间和位置拍摄的一系列水下图像来预测thorns海星的存在和位置。预测以一个边界盒的形式以及...

    SE-TT-VBOOOPS:Self Ex-Trac表-面向虚拟浏览器对象的操作隐私系统

    这暗示可能包含了SE-TT-VBOOOPS的文档、源代码或者演示站点,用户可以通过访问这个页面来了解系统的工作原理、安装和使用方法,以及获取相关的技术支持。 总的来说,SE-TT-VBOOOPS是一个创新的隐私保护系统,致力于...

Global site tag (gtag.js) - Google Analytics