CentOS下Trac svn apache配置安裝及整合

 Trac+svn+apache整合 (sqlite版)

version:1.0
date:2010-10-12
by:李俊
qq:5161155
環境:
     發行版:centos 5.3-i386
     kernel:2.6.18-128.el5
 
1. 各文件設置及說明
 
SVN 配置文件目錄: /etc/svn/
SVN 項目根目錄: /svn/moko_src
Trac根目錄: /trac/moko_src
Trac+SVN 用戶密碼文件: /etc/svn/account   (HTTP方式)
SVN 用戶密碼文件: /svn/moko_src/項目名稱/conf/passwd   (SVN方式)
SVN 用戶權限文件: /etc/svn/authz
服務器IP: 192.168.0.218
SVN 地址: http://192.168.0.218/svn            (http方式)
          svn://192.168.0.218/項目名稱        (SVN方式)
Trac地址: http://192.168.0.218/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 released
[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.0.218:80               (取消註釋,www.example.com改爲你的IP或域名,不改啓動的時候報錯但能運行)
在末尾處加入:
 
#set SVN           (設置SVN,http方式)
<Location /svn>
  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
</Location>
 
#set Trac          (設置Trac)
<Location /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
</Location>
 
保存退出   (: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                   (項目名稱: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/項目名稱/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.0.218/svn/pro            (http方式)
          svn://192.168.0.218/項目名稱        (SVN方式)
Trac地址: http://192.168.0.218/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.0.218/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`
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章