现在的位置: 首页 > 综合 > 正文

trac+mercurial+apache安装

2013年08月19日 ⁄ 综合 ⁄ 共 5425字 ⁄ 字号 评论关闭

 

Trac安装

 trac+mercurial+apache安装

ren-zhang@163.com

1.服务器设置

1.      
代码库位置:/CodeDepository

2.      
Trac库目录:/var/trac

3.      
Apache设置目录:/etc/httpd/conf.d/trac.conf

 

2.安装相关组件

1.      
安装apache

2.      
安装mercurial

3.      
安装trac

A.
安装Genshi

easy_install Genshi-**.egg

        
   B.    
安装trac

                  
   Python setup.py install

3.
 
修改appche设置

        
trac解压缩后的目录下cgi-bin/trac.cgitrac.fcgi解压缩到appchecgi-bin目录下。

4.
 
初始化Trac

        
使用Trac的命令行管理工具来初始化一个代码项目,管理工具会问一些问题来完成初始设置:

        
trac-admin /path/to/myproject initenv

   
然后就可以用Trac自带的http服务器来启动服务了:

tracd --port 8000 /path/to/myproject

5.
apache集成

可以像svn一样,结合apache来进行web方式访问,(实际上,Trac3种方式和web
server
进行通信:CGIFastCGImod_python)需要mod_python
或者
mod_wsgi
的支持。

Web服务器,在支持CGIFastCGIWeb服务器上,Trac可以通过脚本和接口作为一个CGI来运行。还可以使用Apache服务器,但需要安装mod_pythonmod_wsgi

采用cgi的方式,需要把trac安装包下的trac.cgi文件拷到appachecgi-bin目录下。

修改appache设置,修改位置为建立文件/etc/httpd/conf.d/trac.conf

内容为:

ScriptAlias /trac /var/www/cgi-bin/trac.cgi

#Trac needs to know where the database is located

#SetEnv TRAC_ENV /var/trac/egg_trac

#AllowOverride None

SetEnv TRAC_ENV_PARENT_DIR /TRAC

#Order allow,deny

#Allow from all

<Location /trac/*/login>

AuthType Basic

AuthName "Trac Projects"

AuthUserFile "/TRAC/users.htdigest"

Require valid-user

</Location>

 

6.
启用用户认证

        
进一步的设置需要设置trac.ini文件(在创建的代码项目的conf目录下),Trac
0.11
以后也集成了Web界面的管理工具来维护trac.ini文件,但Web管理界面要求当前登录在Trac上的用户有管理员权限,否则会报“No
administration panels available
”的错误。因此现在我们来为Trac启用用户认证功能。

tracd方式启动的服务要开启用户认证,相关的文档可参考:http://localhost:8000/trac/wiki/TracStandalone
这里使用的是Apache里面带的htdigest工具来创建认证文件:

[Get Code]

htdigest [-c] passwordfile realm username

,比如我用

[Get Code]

htdigest -c users.htdigest Test elias

就创建了一个名为users.htdigest的文件,里面有Test这个域下面的名为elias的用户的登录信息。

然后将users.htdigest文件拷贝到trac.ini相同的目录下。改为使用以下语句来启动Trac

[Get Code]

tracd -p 8000 --auth=*,/path/to/users.htdigest,mycompany.com /path/to/project1

比如我这里就是

[Get Code]

tracd --port 8000 --auth=*,D:/tmp/trac/conf/users.htdigest,Test D:/tmp/trac

现在就可以用elias用户登录了。我们还得给新建的用户赋以管理员权限。相关的文档参考:http://trac.edgewall.org/wiki/TracPermissions
比如给elias用户管理员权限,那么可以这样操作:

[Get Code]

trac-admin /path/to/projenv permission add elias TRAC_ADMIN

然后重启Trac服务就可以在网址
http://localhost:8000/trac/admin
看到Web形式的trac.ini修改界面了。

 

7. HGapache上的安装

有时也需要将HG本身的web界面集成到apache中(hg
serv
主要用于临时查看和传输)。

安装方法如下:

  
1. 
确定安装好 apache2

     
dpkg
l 
| grep apache2,
若没装则用 sudo apt-get install apache2
安装

  
2.
变身成 root

     
$ sudo su

  
3.
建立 hg repositories
cgi-bin
的存放路径

     
# mkdir /var/hg

     
# /var/www/cgi-bin(apache
默认cgi路径)

     
# mkdir /var/hg/repos

  1. hgweb.cgi(用于查看单个项目)或者hgwebdir.cgi(用于查看多个hg项目)拷到cgi-bin目录下,并修改权限

     
# cp /usr/share/doc/mercurial/examples/hgwebdir.cgi /var/hg/cgi-bin/

     
# chmod a+x /var/hg/cgi-bin/hgwebdir.cgi

  
5.
建立 /var/hg/cgi-bin/hgweb.config,
写入以下内容

     
[collections]

     
/var/hg/repos/ = /var/hg/repos/(
仓库路径)

  
6.
设定 apache

        
1.
建立 /etc/apache2/sites-available/hg,
写入以下信息,
一行而已

           
ScriptAlias /hg "/var/hg/cgi-bin/hgwebdir.cgi"

        
2.
启用该设定

           
# a2ensite hg

           
# /etc/init.d/apache2 reload

  
7.
开启浏览器,
输入 http://localhost/hg
应该就可以看到 mercurial
的画面

 

若要 allow push,
有两个设定要调整

 

  
1. 
确定 apache
/var/hg/repos/
的写入权限

     
# chown –R www-data.www-data /var/hg/repos/

  
2.
allow push
repository
.hg
目录下编辑 hgrc
文件

     
[web]

     
push_ssl = false

     
allow_push=*

详细权限可在hgaccess中设定

 

   8.  若有中文问题(中文变成?)

解决方式为修改hgweb.cgi或者hgwebdir.cgi,将其中

Import os

Os.environ[“HGENCODING”]=”UTF-8”

前的注释去掉,或者加上这两行。

 

8.
插件安装

1. webadmin

0.11后内置有,WebAdmin只向拥有TRAC_ADMIN权限用户开放,所以建议在安装WebAdmin之前先设置一个TRAC_ADMIN权限的用户。

webadmin使用帮助

Admin目录中,有两个模块,分别为GeneralTicket
System
,下面对他们进行分别介绍

General模块

(1)Basic Settings:这个目录主要用于对当前项目的基本信息进行配置,其中包括NameURLDescription三个字段,说明项目名称,项目URL地址,以及项目的描述信息,这几个字段也可以到trac.ini文件中的project代码段进行修改;

(2)Logging:这个目录用来配置日志记录的一些参数,其中包括TypeLog
Level
Log File三个字段,Type说明日志记录的类型,分为ConsoleFileSyslogWindows
Event Log
四种,Log Level分为DebugInfoWarningErrorCtitical五种,Log
File
用于指定日志文件的位置;

(3)Permissions:用于控制用户权限,在这个目录中,可以方便的进行用户组添加,用户添加,用户权限管理等功能;

(4)Plugins:用于管理Trac的插件,可以对插件进行删除,添加(这里可以直接添加*.egg类型的插件至本项目中,而不必再去进行控制台操作);

Ticket System模块

这个模块的功能是控制Ticket相关的属性,例如创建一个Ticket时,需要设定这个Ticket所属的ComponentMilestonePrioritieTicket
Type
Version等,在这里便可以对这些属性进行配置。[本系列教程版权归G客所有,请注明出处:G客园www.gisblogs.net]

(1)Components:这个目录的功能是管理Components,在这里可以对Components进行添加,删除和修改;

(2)Milestones:这个目录的功能是管理Milestones,在这里可以对Milestones进行添加,删除和修改;

(3)Priorities:这个目录用来管理可用的优先级别,可以新建一个优先级,设定某个优先级的级别,设定默认优先级,删除某个优先级;

(4)Ticket Types:这个目录用来管理Ticket Types,在这里可以对Ticket
Types
进行添加删除和修改;

(5)Versions:这个目录用来管理版本,同样可以进行添加删除和修改。

注:(i) WebAdmin的所有功能均可以通过操作TracAdmin或者修改trac.ini来实现,在附录1中列出了TracAdmin的所有命令及功能;

 

2. mercurial

下载插件。

创建一个egg

Cd mercurial-plugin-0.11

Python setup.py bdist_egg

$ cd mercurial-plugin-0.11

$ python setup.py bdist_egg

将这个egg放到<trac_environment>/plugins下。

修改<trac_environment>/conf/trac.ini:

#启用组件

[components]

tracext.hg.* = enabled

 

#修改项目的代码版本库位置和类型

[trac]

repository_type = hg

repository_dir=/path/to/my/hg/repository

还有一些mercuial的特殊设置:

[hg]

#显示在changeset
hash
中显示revision数字

show_rev = yes

 

# changeset hash
格式

Node_format = short

# hex:
显示全部SHA1 hash

# short:
显示一个短hash

 

注意:

如果hg库中有中文文件,则可能显示乱码。解决方法为:

修改python库源文件,在/usr/local/lib/python2.6/site.py中的main函数,line
505
增加一句:

os.environ[‘HGENCODING’]=’utf-8’

 

附录1

TracAdmin的所有命令及其功能

about

-- Shows information about trac-admin

help

-- Show documentation

initenv

-- Create and initialize a new environment interactively

initenv <projectname> <db> <repostype> <repospath> <templatepath>

-- Create and initialize a new environment from arguments

hotcopy <backupdir>

-- Make a hot backup copy of an environment

resync

-- Re-synchronize trac with the repository

resync <rev>

-- Re-synchronize only the given <rev>

upgrade

-- Upgrade database to current version

wiki list

-- List wiki pages

wiki remove <name>

-- Remove wiki page

wiki export <page>


抱歉!评论已关闭.