华风 发表于 2018-11-26 12:13:57

apache+svn+trac安装及配置2

  安装配置Trac
  Trac是一个非常优秀的源代码浏览工具,现在也很流行.在安装前,需要注意的是,Trac需要以下几个软件的支持,安装前一定要先安装好
  要预先安装的软件包在trac-0.11.2的INSTALL文件里有列出,如下:
  * Python, version >= 2.3.
  + Please keep in mind, that for RPM-based systems you will also need
  python-devel and python-xml packages.
  * Genshi, version >= 0.5
  * Optionally, Subversion, version >= 1.0. (>= 1.1.x recommended)and Subversion
  SWIG Python bindings (not PySVN).
  * PySQLite, version 2.x for SQLite 3.x
  * A web server capable of executing CGI/FastCGI scripts, or Apache HTTPD withmod_python. (Trac also comes with a standalone server)以上各包,一个也不能少,除非你不用apache来做web(而使用tracd,这是trac本身都不建议使用的httpd),当然我们用CGI方式来运行python脚本,所以省掉一个mod_python.
  补充说明下,光有PySQLite而没有SQLite显然是不行的
  这里操作系统已经安装了Python,之前也装了apache(包括cgi)和subversion,所以不用安装了,主要安装如下的软件:
  python-devel
  python-xml
  Genshi
  PySQLite
  SQLite 3.x
  python-devel 、python-xml sqlite-3.2.8-15.2.i586.rpm      sqlite-devel-3.2.8-15.2.i586.rpm 这4个文件可以在suse10 sp2的光盘里面可以找到,都是rpm包,至于安装我这里就不说了,安装其他的软件包
  安装 Genshi
  # tar zxvf Genshi-0.5.1.tar.gz
  # cd Genshi-0.5.1
  # Python setup.py install
  安装PySQLite
  # tar zxvf pysqlite-2.5.5.tar.gz
  # cd pysqlite-2.5.5
  # python setup.py install
  安装trac
  # tar zxvfTrac-0.11.2.1.tar.gz
  # cd Trac-0.11.2.1
  # python ./setup.py install
  关于trac本身的安装就这么简单,详情请参考trac-0.11.2.1/INSTALL文档.其中还有后续章节所涉及内容的详述,包括如何使用 trac-admin初始化一个trac项目,如何启动tracd服务,以及如何配置使用apache来提供trac的web服务.
  trac安装的缺省路径是/usr/local,trac-admin和tracd都在/usr/loca/bin目录,trac的模版等都在/usr/local/share/trac目录.
  使用trac-admin命令可以初始化一个trac项目,一个trac项目对应一个SVNrepository,这是应用中应该注意的.
  # mkdir -p /home/trac
  #trac-admin /home/trac/my_projectinitenv
  这个命令即可启动初始化/home/trac/my_project项目的交互进程,是建立trac项目,运行后提示如下:
  
    Project Name > 输入项目名称   //随便起个名字
    Database connection string >    //直接回车
  Repository type >               //仓库类型svn回车
    Path to repository >//仓库路径 输入刚才SVN路径
  初始化完成后,可以通过修改/home/trac/my_project/conf/trac.ini来改变设置,甚至可以改变svn repository的设置,你需要做的只是在改完后使用trac-admin /home/trac/my_project resync来重新同步trac项目和svn repository.
  #chown -R svn:svnrw /home/svn
  trac有两种方式提供web服务,其一是trac自带的tracd,它本身就是一个httpd,启动方式如下:
  #tracd --port 8000 /home/trac/my_project
  或者你有两个项目,则在后面加一个目录:
  #tracd --port 8000 /home/trac/my_project1 /home/trac/my_project2
  这种方式很简单,但问题是trac本身都不建议你用,因为tracd不够完善.
  但不管怎么样,你可以试用一下tracd,看看你的安装配置是不是都可以work了,毕竟加上apache,是件相对复杂很多的事情,所以,在这之前用tracd来检验一下还是必要的。
  启动服务后,你就可以在一台客户机上使用浏览器来来浏览你开启的web服务了。比如:
  http://IP:8000/my_project
  如果可以看到trac的默认首页,就说明是OK的,然后就开始将trac集成到apache.
  把trac集成到apache有很多方法,可以使用mod_python模块,可以使用cgi模块或者fast-cgi模块,这里使用了cgi模式,这个方法比较简单.如果你需要速度快一点,那使用fast-cgi好了.

  首先把trac源代码目录中cgi-bin目录下的两个文件拷贝到你存放cgi的地方,比如/usr/local/apache2/cgi-bin目录下.
  # vi /usr/local/apache2/conf/httpd.conf
  然后添加以下内容:
  #
### Trac settings
#
  Alias /trac/chrome/common "/usr/share/trac/htdocs"

    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all

  ScriptAlias /trac /usr/local/apache2/cgi-bin/trac.cgi

    SetEnv TRAC_ENV_PARENT_DIR "/home/trac"

  
    AuthType Basic
    AuthName "Trac Login"
    AuthUserFile /etc/svntrac.htpasswd
    Require valid-user

  密码文件svntrac.htpasswd我们和svn共享,这样就只需要管理一套密码了.
保存,退出,重启apache.再访问http://IP/trac看看是不是可以得到trac的默认首页,然后点击"browse source",你应该可以看到svn仓库里的资源.
  这里需要注意的是:
  SetEnv TRAC_ENV "/home/trac/my_project"   #单个项目时用这样写
SetEnv TRAC_ENV_PARENT_DIR "/home/trac"    #多个项目时这样写
  还有如果多个项目使用一个密码文件可以这样配置"trac/*/login",单个的话就"tra/login"
  对于多个项目的话当在浏览器里输入http://IP/trac时显示的是一个简单的Available Projects页面
  管理Trac访问许可
  Trac的许可权限管理简单而有效,它可通过trac-admin命令来管理。用trac-admin可管理用户的许可权限,但用户的管理是通过 Apache的htpasswd命令设置的,根据上面的Apache CGI配置,用户名和密码是存放在/etc/svntrac.htpasswd文件中。下面这个命令可用来列出当前有效的许可权限和已设置的许可权限。

# trac-admin /home/trac/my_project permission list
User    Action
--------------------------
anonymous   BROWSER_VIEW
anonymous   CHANGESET_VIEW
anonymous   FILE_VIEW
anonymous   LOG_VIEW
anonymous   MILESTONE_VIEW
anonymous   REPORT_SQL_VIEW
anonymous   REPORT_VIEW
anonymous   ROADMAP_VIEW
anonymous   SEARCH_VIEW
anonymous   TICKET_CREATE
anonymous   TICKET_MODIFY
anonymous   TICKET_VIEW
anonymous   TIMELINE_VIEW
anonymous   WIKI_CREATE
anonymous   WIKI_MODIFY
anonymous   WIKI_VIEW


Available actions:
BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, FILE_VIEW, LOG_VIEW,
MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE, MILESTONE_MODIFY,
MILESTONE_VIEW, REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE, REPORT_MODIFY,
REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW, SEARCH_VIEW,
TICKET_ADMIN, TICKET_APPEND, TICKET_CHGPROP, TICKET_CREATE, TICKET_MODIFY,
TICKET_VIEW, TIMELINE_VIEW, TRAC_ADMIN, WIKI_ADMIN, WIKI_CREATE,
WIKI_DELETE, WIKI_MODIFY, WIKI_VIEW
  上面列出的内容是还没进行许可权限设置时的情况,Available actions段的内容就是有效许可权限的列表,每个权限的解析可查询TracGuide中的TracPermission节的内容。其中 TRAC_ADMIN许可相当于Linux中的root用户,拥有最高的权限。如果我们要把TRAC_ADMIN许可授予wiliiwin用户,则可这样设置:

~# trac-admin /home/trac/my_project permission add wiliiwin TRAC_ADMIN
  WIKI_ADMIN是WIKI系统的管理员,具有WIKI_CREATE,WIKI_DELETE, WIKI_MODIFY, WIKI_VIEW权限。也就是WIKI页面的创建、删除、修改和查看四种权限,授予方式同上。

删除用户的许可可用remove关健字,如:

~# trac-admin /home/trac/my_project permission remove wiliiwin TRAC_ADMIN

在Trac的权限管理中可以设置组以简化权限配置,下例将设置一个admin组,具有TRAC_ADMIN许可权限,把wiliiwin用户加入到该组中,使他们也具有TRAC_ADMIN许可权限:
~# trac-admin /home/trac/my_project permission add admin TRAC_ADMIN
~# trac-admin /home/trac/my_project permission add wiliiwinadmin


在Trac的用户中,有两个默认的用户,一个是anonymous,表示匿名用户;一个是authenticated,表示所有已通过验证的用户。我们可以把许可权赋予这两个用户,从而简化我们的许可权限配置。
  备份和恢复Trac

Trac系统的备份和恢复也可使用trac-admin工具来完成,还可支持热备份。备份命令如下:

~# trac-admin /home/trac/my_project hotcopy ~/backup

执行该命令时,Trac会自动锁住SQLite数据库,并把/home/trac/my_project目录拷贝到~/backup目录。恢复备份也很简单,只需停止Trac进程,如Apache服务器或tracd服务器。接着把~/backup整个目录恢复回/data/trac目录就可以了。
  到此trac也配完了.
  
  现在说下关于trac的一些插件,trac的官方网站提供了很多的trac插件,用户更加方便的来使用trac,这里我仅仅以Account Manager 这个插件(此插件用来替代apache的用户添加,通过web页面来进行用户的添加以及密码的修改)为例,插件的下载地址是http://trac-hacks.org,在首页找到plugin这栏寻找Account Manager,找到以后打开这个插件的分页,往下看可以看到
  Downloads:

[*]  0.9
[*]  0.10
[*]  0.11 (doesn't currently work with 0.11.4, see #4125)
[*]  trunk
  这里提供了不同版本trac的插件,由于上面装的是trac 0. 11版本的,所以这里下载0.11版本的插件.插件名字为: accountmanagerplugin_0.11-r8268.zip,把此插件的包放到你trac项目的plugin目录下.
  # unzip accountmanagerplugin_0.11-r8268.zip
  # cd accountmanagerplugin/0.11
  # python setup.py install   //这样就安装好了Account Manager插件了.
  进入trac web页面,用上面apache创建的admin用户进行登录,登录之后点击导航栏的admin选项卡,如下图所示:
  
  点击admin之后,出现如下的分页,
  
  我们这里选择plugins,出现如下的分页

  点击下面的TraccountManager插件,出现如下的页面,关于这些选项是什么意思,大家可以到trac的官方网站上查询,这里存储密码我使用了db方式,还有其他3种方式:htDigestStore、HtPasswdStore、HttpAuthStore.

  
  选择需要的选项之后,点击下面的Apply Changes按钮,进行选项的保存
  然后我们到trac项目的conf目录下面,打开trac.ini配置文件,由于
  trac 0.11插件可以自动把相关的配置参数加到这个配置文件里面,
  所以我们基本没有用手动添加,这里把主要
  的配置参数贴出来,要是没有哪行的配置参数,需要自己手动添加下:
  
  password_store = SessionStore
  hash_method = HtPasswdHashMethod
  
  acct_mgr.admin.accountmanageradminpage = enabled
  acct_mgr.api.accountmanager = enabled
  acct_mgr.db.sessionstore = enabled
  acct_mgr.htfile.htpasswdstore = enable
  acct_mgr.notification.accountchangelistener = enabled
  acct_mgr.notification.accountchangenotificationadminpanel = enabled
  acct_mgr.pwhash.htdigesthashmethod = enabled
  acct_mgr.pwhash.htpasswdhashmethod = enabled
  acct_mgr.web_ui.accountmodule = enabled
  acct_mgr.web_ui.loginmodule = enabled
  acct_mgr.web_ui.registrationmodule = enabled
  trac.web.auth.loginmodule = disable   //这里一定要是
                                          disable,否则导致
                                          插件不可用
  修改apache配置文件
  #    //把这些配置都用#注释起来
                             
  #    AuthType Basic
  #    AuthName "Trac Login"
  # AuthUserFile /etc/svntrac.htpasswd
  #    Require valid-user
  #
  重启apache服务,使插件生效
  # service httpd stop
  # service httpd start
  再转回到trac web的页面,这个时候就会多出一个导航

  然后我们点击users,出现如下的页面:

  可以在右边进行用户的添加以及用户密码的修改,大大方便了管理
  任务.至于其他插件与此插件的安装方式大同小异,至于配置参数可
  以到官方站点进行查询.



页: [1]
查看完整版本: apache+svn+trac安装及配置2