设为首页 收藏本站
查看: 1087|回复: 0

[经验分享] Trac+svn+apache整合 (sqlite版)

[复制链接]

尚未签到

发表于 2018-11-26 13:55:19 | 显示全部楼层 |阅读模式
  最近公司在同时做几个开发项目,为了更好的协同工作,受命搭建trac。之前从未接触过,很没头绪。在网上扒拉了半天,终于找到了一个比较不错的安装配置教程。但是后续管理还在继续研究中,等弄明白再来开贴分享。
  以下为详细内容(这句有点儿像新闻联播- -):
  aa代表 项目名称
  环境:
  发行版:centos 5.3-i386
  kernel:2.6.18-128.el5
  采用yum安装方式
  1. 各文件设置及说明
  SVN 配置文件目录: /etc/svn/
  SVN 项目根目录: /svn/moko_src
  Trac根目录: /trac/moko_src
  Trac+SVN 用户密码文件: /etc/svn/account   (HTTP方式)
  SVN 用户密码文件: /svn/moko_src/aa/conf/passwd   (SVN方式)
  SVN 用户权限文件: /etc/svn/authz
  服务器IP: 192.168.18.210
  SVN 地址: http://192.168.18.210/svn            (http方式)
  svn://192.168.18.210/aa        (SVN方式)
  Trac地址: http://192.168.18.210/trac
  2.设置163.com开源镜像的yum,安装和升级包速度快!
  cd /etc/yum.repos.d/
  mv CentOS-Base.repo CentOS-Base.repo.bak
  vim CentOS-Base.repo
  输入:
  [base]
  name=CentOS-$releasever - Base
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
  #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
  baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
  gpgcheck=1
  gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  #released updates
  [updates]
  name=CentOS-$releasever - Updates
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
  #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
  baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/
  gpgcheck=1
  gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5

  #packages used/produced in the build but not>  [addons]
  name=CentOS-$releasever - Addons
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
  #baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
  baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
  gpgcheck=1
  gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  #additional packages that may be useful
  [extras]
  name=CentOS-$releasever - Extras
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
  #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
  baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/
  gpgcheck=1
  gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  #additional packages that extend functionality of existing packages
  [centosplus]
  name=CentOS-$releasever - Plus
  #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
  #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
  baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/
  gpgcheck=1
  enabled=0
  gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
  保存退出 (:wq)
  3.安装必要的包
  yum install -y openssl openssl-devel mod_ssl   apr apr-util sqlite python-sqlite libxml2-python mod_python python-devel python httpd mod_auth_mysql
  (若64位服务器,一般在每个包名字后面加.x86_64  如果还是找不到相应包名称,用yum search 包名称,查询完整64位包名称)
  创建相应文件和文件夹,赋予权限
  mkdir -p /etc/svn                 (SVN 配置文件目录)
  mkdir -p /svn/moko_src            (SVN 项目根目录)
  mkdir -p /trac/moko_src           (Trac根目录)
  touch /etc/svn/account            (Trac+SVN 用户密码文件)
  touch /etc/svn/authz              (SVN 用户权限文件)
  chown -R apache:apache /etc/svn   (所有者和组必须为apache,不然Trac无法更新配置文件)
  4.通过yum安装Trac和相关包
  因为centos官方yum不包括Trac和相关包,通过第三方yum进行安装,所以这里要更改一下yum配置文件。trac包安装结束后,可以在改回来,163的yum国内最快
  mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.163
  vim /etc/yum.repos.d/CentOS-Base.repo
  [dag]
  name=Dag RPM Repostory for RHEL
  baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag/
  gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
  gpgcheck=1
  enabled=1
  [kbs-CentOS-Misc]
  name=CentOS.Karan.Org-EL$releasever - Stable
  baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/
  gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
  gpgcheck=1
  enabled=1
  保存退出 (:wq)
  yum -y install subversion subversion-perl mod_dav_svn trac clearsilver python-clearsilver   (yum安装Trac和相关包)
  vim /etc/httpd/conf/httpd.conf                       (编辑apache配置文件)
  找到#ServerName www.example.com:80
  改为
  ServerName 192.168.18.210:80               (取消注释,www.example.com改为你的IP或域名,不改启动的时候报错但能运行)
  在末尾处加入:
  #set SVN           (设置SVN,http方式)
  
  DAV svn
  SVNParentPath /svn/moko_src
  Satisfy Any
  # HTTP user login
  AuthType Basic
  AuthName "SVN Repository"
  AuthUserFile /etc/svn/account
  AuthzSVNAccessFile /etc/svn/authz
  Require valid-user
  
  #set Trac          (设置Trac)
  
  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /trac/moko_src
  PythonOption TracUriRoot /trac
  # HTTP user login
  AuthType Basic
  AuthName "Trac Project"
  AuthUserFile /etc/svn/account
  Require valid-user
  
  保存退出   (:wq)
  4.开始设定Trac\SVN
  svnadmin create /svn/moko_src/pro                (创建SVN版本库,版本库名称为:pro)
  chown -R apache:apache /svn/moko_src/pro         (用户和所有组必须为apache,否则trac无法写版本库里的文件)
  htpasswd /etc/svn/account admin                  (创建一个名为admin的SVN用户)
  trac-admin /trac/moko_src/pro initenv            (创建trac项目)
  各项如下
  Project Name [My Project]> pro                   (aa:pro,这里最好和SVN版本库名一样,方便管理和记忆)
  Database connection string [sqlite:db/trac.db]>  (这里直接回车,默认就是sqlite库)
  vim /trac/moko_src/pro/conf/trac.ini             (修改trac配置文件)
  找到
  max_size = 1000000                               (支持最大文件10M)
  repository_dir = /svn/moko_src/pro               (这里要指定svn版本库的路径,必须指定!!!)
  保存退出   (:wq)
  chown -R apache:apache /trac/moko_src/pro        (用户和所有组必须为apache,否则trac无法写项目里的文件)
  安装eggs插件,不装无法使用,报错!!!
  cd /tmp
  wget http://peak.telecommunity.com/dist/ez_setup.py
  python ez_setup.py
  mkdir /var/www/.python-eggs
  chown apache:apache  /var/www/.python-eggs
  mkdir  /trac/moko_src/.egg-cache
  chown apache:apache  /trac/moko_src/.egg-cache
  以 easy_install 安装4个实用的Trac插件 (安裝Trac0.12版的插件,部分0.11的也可用):
  easy_install http://trac-hacks.org/svn/iniadminplugin/0.11
  easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11
  easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.12
  easy_install http://trac-hacks.org/svn/svnauthzadminplugin/0.11
  插件说明
  IniAdmin: trac.ini 管理。
  Account Manager: Trac 的用户管理。
  TracWiki WYSIWYG Editor: 让Wiki编辑器变成WYSIWYG编辑器。
  Svnauthz File Administration: SVN账号及权限管理
  #####################################################################
  (在Trac管理里只能设定http方式的,svn方式要另行手工设定。
  /etc/svn/account和/svn/moko_src/aa/conf/passwd
  这两个文件的用户名和密码要相同,这样才能达到http和SVN两种方式的登录)
  #####################################################################
  编辑Trac的配置文件
  vim /trac/moko_src/pro/conf/trac.ini
  加入
  [components]
  webadmin.* = enabled
  iniadmin.iniadmin.iniadminplugin = enabled
  tracwysiwyg.* = enabled
  svnauthz.* = enabled
  acct_mgr.api.accountmanager = enabled
  acct_mgr.htfile.HtPasswdStore = enabled
  #close HTTP login
  trac.web.auth.LoginModule = disabled
  acct_mgr.web_ui.LoginModule = enabled
  acct_mgr.admin.AccountManagerAdminPage = enabled
  acct_mgr.web_ui.AccountModule = enabled
  [account-manager]
  password_format = htpasswd
  password_file = /etc/svn/account
  password_store = HtPasswdStore
  找到[header_logo]区域
  src = site/logo.gif  此参数设置LOGO,site/logo.gif换成site/logo文件名,本文档中/trac/moko_src/pro/htdocs/logo.gif
  另外,还要在 [trac] 区域找到 "authz_file" 及 "authz_module_name" 这两个参数,分别设为:
  authz_file = /etc/svn/authz   (SVN用户权限文件)
  authz_module_name = pro       (要设定为SVN版本库名称)
  找到[trac]区域
  default_charset = utf-8
  ###################################
  这两个参数都和SVN的用户权限有关,"authz_module_name"  必须设定为SVN版本库的名称
  "default_charset"这个参数,如果和你的版本库编码不同,改成Checkin到SVN版本库文件的相同编码即可。(这个我没该,我默认都是UTF-8的)
  ###################################
  5. Trac的用户管理
  通常先指定 Trac 的管理者、删除匿名访客权限、增加一个一般用户组,命令如下:
  trac-admin /trac/moko_src/pro permission add admin TRAC_ADMIN     (增加admin为管理员)
  trac-admin /trac/moko_src/pro permission remove anonymous '*'     (删除匿名访客权限)
  增加一个一般用户组
  trac-admin /trac/moko_src/pro permission add @user FILE_VIEW BROWSER_VIEW CHANGESET_VIEW
  在Trac里,用户和组的命名及管理方式是没有区别,用戶也可以是组,所以,你也可以把第一个用户指定给第二个用户,第一个用户就会拥有第二个用户的相同的权限。上面的命令,新增了"@user"的组作为识别,并设定权限,只要把用户指定给 @user,就可以使用相同的权限。
  修改/svn/moko_src/pro/conf/svnserve.conf
  vim /svn/moko_src/pro/conf/svnserve.conf
  password-db = passwd       (这个密码文件里定义的用户名和密码要和 trac管理里定义的同步)
  authz-db = /etc/svn/authz     (使用trac定义的权限文件)
  anon-access=none
  这样http和svn方式均可使用
  7. 设置文成后,启动apache,SVN服务
  service httpd start     (启动apache)
  chkconfig httpd on        (开机以服务方式启动apache)
  ########################################################
  创建以服务方式启动SVN脚本
  echo '#!/bin/bash' > /root/startsvn.sh
  echo 'svnserve -d -r /svn/moko_src' >> /root/startsvn.sh
  chmod +x /root/startsvn.sh
  ########################################################
  echo '/root/startsvn.sh'  >> /etc/rc.d/rc.local    (开机自启动SVN服务)
  #############################备注#################################
  SVN 地址: http://192.168.18.210/svn/pro            (http方式)
  svn://192.168.18.210/aa        (SVN方式)
  Trac地址: http://192.168.18.210/trac
  用admin用户登录后,选择版本库名称,进行设置
  不要忘记设置svn
  点击右上角找到login,用admin登录
  点击[Admin] 进入管理界面,其中:
  1.General 下的"Permissions" 管理Trac用户使用权限
  2.Account 下的"Users" 管理Trac及SVN的用戶 (/etc/svn/account)
  3.Subversion 下的"Subversion Access" 管理SVN的路径存取权限及SVN用户组 (/etc/svn/authz)
  除了新增用户(Users)及修改(Permissions)之外,你如果点菜单栏上的 [Browse Source] 系统会提示权限不足,现在任何用户都不能存取 SVN 版本库里的文件(http://192.168.18.210/svn/pro),因为"/etc/svn/authz" 这个文件是空的,必须到Trac 管理介面的"Subversion Access"设置让用戶拥有读写 "/"  这个路径的权限才行。
  ##################################################################
  General 下的"Permissions" 权限参数解释
  版本库浏览器
  BROWSER_VIEW 在版本库浏览器中查看目录清单
  LOG_VIEW 在版本库浏览器中查看文件和目录的修订日志
  FILE_VIEW 在版本库浏览器中查看文件
  CHANGESET_VIEW 查看版本库中的变更
  传票系统
  TICKET_VIEW 查看现有传票和执行传票查询
  TICKET_CREATE 创建新的传票
  TICKET_APPEND 为传票添加评论或附件
  TICKET_CHGPROP 更改传票属性, 包括优先级, 指派到, 关键字等等(描述域除外)
  TICKET_MODIFY 包括TICKET_APPEND和TICKET_CHGPROP. 另外, 允许解决传票
  TICKET_EDIT_CC 更改抄送字段
  TICKET_EDIT_DESCRIPTION 更改描述字段
  TICKET_ADMIN 所有TICKET_*权限, 还有删除传票附件和描述域的更改
  注意: 需要REPORT_VIEW权限以显示"查看传票"按钮.
  路线图
  MILESTONE_VIEW         查看里程碑
  MILESTONE_CREATE 创建一个新里程碑
  MILESTONE_MODIFY 修改现有里程碑
  MILESTONE_DELETE 删除里程碑
  MILESTONE_ADMIN         所有MILESTONE_*权限
  ROADMAP_VIEW         查看路线图页面
  ROADMAP_ADMIN         从#3022中删除, 由MILESTONE_ADMIN替换
  报表
  REPORT_VIEW 查看报表
  REPORT_SQL_VIEW 查看报表的底层SQL查询
  REPORT_CREATE 创建新报表
  REPORT_MODIFY 更改现有报表
  REPORT_DELETE 删除报表
  REPORT_ADMIN 所有REPORT_*权限
  Wiki系统
  WIKI_VIEW 查看现有的Wiki页面
  WIKI_CREATE 创建新的Wiki页面
  WIKI_MODIFY 更改Wiki页面
  WIKI_DELETE 删除Wiki页面和附件
  WIKI_ADMIN 所有WIKI_*权限, 和只读页面的管理
  权限
  PERMISSION_GRANT 增加/授予权限
  PERMISSION_REVOKE 删除/收回权限
  PERMISSION_ADMIN 所有PERMISSION_*权限
  其他
  TIMELINE_VIEW 查看时间线页面
  SEARCH_VIEW 查看和执行搜索查询
  CONFIG_VIEW 启用关于Trac的附加页面, 显示现在的配置或已安装插件的列表
  EMAIL_VIEW 显示邮件地址, 即使`trac show_email_addresses`配置项是`false`


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-639921-1-1.html 上篇帖子: apache实现weblogic集群配置 下篇帖子: Apache与Tomcat安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表