史蒂夫和斯凯 发表于 2018-11-27 07:12:47

svn,apache,trac整合

  1、通过yum安装必要的包:
yum install -y openssl openssl-devel mod_ssl   apr apr-util
yum install -y libxml2-python mod_python python-devel python    安装python的相关模块
yum install -y sqlite python-sqlite   安装sqlite相关软件包,如果只用数据库,这步可以省略
yum install -y mod_auth_mysql mysql-server mysql mysql-devel MySQL-python   安装mysql相关软件
yum install -y httpd    安装mysql以及相关包
  创建相应文件和文件夹,赋予权限
mkdir -p /etc/svn               (SVN 配置文件目录)
mkdir -p /svn/gc            (SVN 项目根目录)
mkdir -p /trac/gc         (Trac根目录)
touch /etc/svn/account            (Trac+SVN 用户密码文件)
touch /etc/svn/authz            (SVN 用户权限文件)
chown -R apache:apache /etc/svn   (所有者和组必须为apache,不然Trac无法更新配置文件)
  2、通过yum安装Trac和相关包
把下边的地址加入到/etc/yum.repos.d/CentOS-Base.repo
vim /etc/yum.repos.d/CentOS-Base.repo
  
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
  
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
  yum安装trac和相应的包
yum -y install clearsilver python-clearsilver安装clearsilver
yum -y install subversion subversion-perl mod_dav_svn trac
  
3、安装eggs插件,不装无法使用,报错!!!
cd
wget http://peak.telecommunity.com/dist/ez_setup.py   安装easy_install,以便下边安装插件
python ez_setup.py
mkdir /var/www/.python-eggs
chown apache:apache/var/www/.python-eggs
mkdir/trac/gc/.egg-cache
chown apache:apache/trac/gc/.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账号及权限管理
  4、新建一个svn项目,然后用trac来管理svn的流程:
  创建svn项目:
svnadmin create /svn/gc/product001                (创建SVN版本库,版本库名称为:pro)
chown -R apache:apache /svn/gc/product001         (用户和所有组必须为apache,否则trac无法写版本库里的文件)
  创建MySQL数据库[如果你用SQLite做为Trac的数据库,此步可忽略]
登陆MySQL
#mysql mysql -u root -p
创建用户trac
mysql>GRANT ALL PRIVILEGES ON *.* TO trac@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
创建数据库,注意:如果你想在Trac中使用中文,必须设定数据库编码是utf8,MySQL缺省编码方式是latin1
mysql>CREATE DATABASE IF NOT EXISTS trac_telecom default charset utf8 COLLATE utf8_general_ci;
  创建trac项目:
trac-admin /trac/gc/product001 initenv            //创建trac项目
各项如下
Project Name > product001                   //项目名称:pro,这里最好和SVN版本库名一样,方便管理和记忆
Database connection string >mysql://trac:password@192.168.0.235:3306/trac_telecom2//这里我们用MySQL数据库,如果用SQLite直接回车即可
上一步出现错误:不能连接数据库,解决办法可以把mysql配置文件中的skip-networking给注释掉
Repository type >直接回车 //仓库类型svn回车   
Path to repository >/svn/gc/product001//输入svn项目库路径   
Templates directory >直接回车   //模板路径,如果你安装的时候选择了Trac安装路径,那么这里要改写成正确的Trac安装路径

vim /trac/gc/product001/conf/trac.ini             (修改trac配置文件)
找到
max_size = 10000000                               (支持最大文件10M)
repository_dir = /svn/gc/product001               (这里要指定svn版本库的路径,必须指定!!!)
  找到区域
src = site/logo.gif   (此参数设置LOGO)
保存退出   (:wq)
chown -R apache:apache /trac/gc/product001      (用户和所有组必须为apache,否则trac无法写项目里的文件)
  修改httpd配置,增加虚拟主机,并配置svn和trac的http密码
Listen 8080(增加一个监听的端口,注意:不是修改,是增加
  在配置文件末尾增加下边内容:
  
DocumentRoot /var/www/html/
ServerName 192.168.0.252:8080

DAV svn
SVNParentPath /svn/gc #设置项目的根目录
SVNListParentPath on
  AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn/account#设置认证文件,用的是htpasswd生成的密码
Require valid-user

  
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /trac/gc
PythonOption TracUriRoot /trac
  AuthType Basic
AuthName "Trac Project"
AuthUserFile /etc/svn/account #trac的认证和svn用的相同认证文件
Require valid-user


  用http协议连接时,用http的密码机制限制限制用户权限:
  增加svn和trac的http认证的用户名和密码
htpasswd /etc/svn/account lgq增加user账户
  用svn协议连接时,用svn自带的机制来管理用户权限:
首先要启动svn服务端:svnserve -d -r /svn      #端口默认是3690
  # cd /svn/gc/product001/conf
# ll
总计 12
-rw-r--r-- 1 apache apache960 2011-08-06 authz
-rw-r--r-- 1 apache apache301 08-06 10:03 passwd
-rw-r--r-- 1 apache apache 2318 08-06 10:03 svnserve.conf
用上述的三个配置文件来管理svn协议登录的账户和密码
  先设置svnserver.conf
vim svnserver.conf
  anon-access = none(等号两边一定要有空格)
password-db = passwd
authz-db = authz
  然后配置authz
然除了user,admin这两个用户有读写的权限,其他账户没有权限

administrator = admin,user
  [/]
@administrator = rw
* =
  为账户设置密码:
vim passwd
  
admin = 123456
user = 123456



页: [1]
查看完整版本: svn,apache,trac整合