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

[经验分享] svn+trac+apache (centos5.4)

[复制链接]

尚未签到

发表于 2017-1-2 10:01:55 | 显示全部楼层 |阅读模式
Svn +trac+apache安装配置


   SVN + Trac + Apache 完整安裝攻略,而原本在 SVN 所欠缺的用戶及權限管理介面,也都可以由 Trac 的外掛程式來搞定,可謂兩全其美。
本文章適合熟悉 SVN 但沒用個任何線上專案管理的人做為參考。
請注意,本人使用的 Linux 是 CentOS 5.2.
1. 伺服器環境及設置
在伺服器上,我的設置如下:
1.SVN 檔案庫的根目錄: /var/svn/ (裡面可以存放多個檔案庫)
2.Trac 專案的根目錄: /var/trac/ (裡面可以存放多個專案)  
3.伺服器 IP: 192.168.41.101
4.SVN 的存取網址: http://192.168.41.101/svn
5.Trac 的存取網址: http://192.168.411.101/trac
所以要先建立這些目錄及檔案:
mkdir /var/svn
mkdir /var/trac
chown -R apache:apache /var/trac
chmod 777 /var/svn
2. 增加 yum 的套件伺服器
編輯 /etc/yum.repos.d/CentOS-Base.repo,在檔案最後加入下列的 yum 套件伺服器(來自 dag 及 kbs):
[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
增加了這兩個套件伺服器之後,就可以直接用 yum 安裝 SVN 及 Trac 了。

3.安装及升级相关的软件
   yum -y install httpd*
   yum -y install php*
   yum -y install mysql*
   yum -y install python*
   yum -y install glib*
   yum -y install libc*
   yum -y install gd*
   yum -y install db*
   yum -y install sqlite*
   yum -y install genshi*
   yum -y install  clearsilver*
   yum -y install  mod_python*
   yum -y install docutils*
   yum -y install pygments*
   yum -y install pytz*
注意:yum安装不了,下载以下版本:Genshi-0.6-py2.4.egg  Pygments-1.4-py2.4.egg  pytz-2011b-py2.4.egg    setuptools-0.6c11-py2.4.egg和setuptools-0.6c11.tar.gz Trac-0.11.5.tar.gz  docutils-0.7.tar.gz
--------------------------我附件有下载----------------
到这个地址下载http://pypi.python.org/pypi/setuptools#downloads 下载setuptools
来安装"easy_install"命令
    $ tar xzvf setuptools.xx.tar.gz
    $ cd setuptools.xx
    $ python setup.py install
到 http://pypi.python.org/pypi/setuptools#downloads 网站下载跟python对应版本的setuptools.xxx.xx.egg ,安装在计算机中:
    easy_install setuptools-0.6c9-py2.4.egg 或者 sh setuptools-0.6c9-py2.4.egg –prefix=~ 进行安装

  

到这个地址下载 http://genshi.edgewall.org/wiki/Download  Genshi.x.x.tar.gz
    $ tar -xzvf  genshi.x.x.tar.gz
    $ cd genshi.x.x
    $ python setup.py install



4.安装SVN及相關套件
   
   以 yum 輕鬆安裝 SVN 主程式及相關套件:
    yum -y install subversion subversion-perl mod_dav_svn apr apr-util

5.安装submin插件
安装submin插件可以方便管理svn的库和用户群组的建立,以及用户群组对库的权限管理:
  到http://supermind.nl/submin/ 下载submin软件 这里submin版本:submin-1.2.4.tar.gz

   tar -xzvf submin-xx.tar.gz
   cd submin-xx
   sh bin/install.sh /usr/local
   /usr/local/bin/submin-admin create default
修改submin的配置文件,在/etc/submin的目录下,编辑default.conf文件
[svn]
authz_file = /var/lib/submin/authz
userprop_file = /var/lib/submin/userproperties.conf
access_file = /var/lib/submin/htpasswd
repositories = /var/svn
[www]
base_url = /submin
svn_base_url = http://192.168.41.101/svn
trac_base_url = http://192.168.41.101/trac
# the following section is optional and only needed if you want to use Trac
[trac]
enabled = true
basedir = /var/trac
[backend]
bindir = /usr/local/share/submin/bin
path = /bin:/usr/bin:/usr/local/bin:/opt/local/bin
[generated]
session_salt = B.k7zVGYSk0TC4jD
修改default-apache-cgi.conf
    Alias /submin /usr/local/share/submin/www
    <Directory /usr/local/share/submin/www>
        Order allow,deny
        Allow from all
        Options ExecCGI FollowSymLinks
        AddHandler cgi-script py cgi pl
        SetEnv SUBMIN_CONF /etc/submin/default.conf
        RewriteEngine on
        RewriteBase /submin
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.+)$ submin.cgi/$1
        RewriteRule ^/?$ submin.cgi/
    </Directory>
    <Location /svn>
        DAV svn
        SVNParentPath /var/svn
        AuthType Basic
        AuthName "SVN Repository"
        AuthUserFile /var/lib/submin/htpasswd
        AuthzSVNAccessFile /var/lib/submin/authz
        Satisfy Any
        Require valid-user
    </Location>
修改httpd.conf文件,在后面加上
Include /etc/submin/default-apache-cgi.conf
6. 安裝 Trac 及相關套件
以 yum 輕鬆安裝 Trac 主程式及相關套件:(这里要注意:要安装trac0.11.5版本)
yum -y install trac clearsilver python-clearsilver
7. 修改網頁配置:
編輯 /etc/httpd/conf/httpd.conf,在最後面加上:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
  DAV svn
  SVNParentPath /var/svn
  Satisfy Any
# HTTP 用戶驗證
  AuthType Basic
  AuthName "SVN Repository"
  AuthUserFile /var/lib/submin/htpasswd
  AuthzSVNAccessFile /var/lib/submin/authz
  Require valid-user
</Location>
<Location /trac>
  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /var/trac
  PythonOption TracUriRoot /trac
# HTTP 用戶驗證
# AuthType Basic
# AuthName "Trac Project"
# AuthUserFile /etc/svn/account
# Require valid-user
</Location>
請注意上面註解(#)的部份,因為要用 Trac 的外掛程式來管理用戶的登入,所以就不需要 HTTP 用戶驗證,如果比較喜歡用 HTTP 驗證就把下面四行的註解拿掉即可,並且下面 trac.ini 的設定也要把 “trac.web.auth.LoginModule” 啟用。

编辑/etc/httpd/conf.d/trac.conf文件
###### Sample Trac configuration taken from http://trac.edgewall.org/wiki/TracModPython
###
### The recommended Trac web interface requires mod_python
<IfModule mod_python.c>
### Create your Trac environments as subdirectories of /var/trac
### They will appear in a listing on your website at /trac/, and be available
### at /trac/PROJECTNAME/
<Location /trac>
  SetHandler mod_python
  PythonInterpreter main_interpreter
  PythonHandler trac.web.modpython_frontend
  PythonOption TracEnvParentDir /var/trac
  PythonOption TracUriRoot /trac
</Location>
### Use htpasswd to add Trac accounts to the AuthUserFile
<LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "Trac"
  #AuthUserFile /var/www/trac/.htpasswd
  #修改对应保存用户的文件
   AuthUserFile /var/lib/submin/htpasswd
   Require valid-user
</LocationMatch>

8. 建立第一個 SVN 的儲存庫
先在 /var/svn 建立一個名為 “project1″ 的儲存庫:
svnadmin create /var/svn/project1
chown -R apache:apache /var/svn/project1
( 新增一個管理者帳號
先在 /etc/svn/account 新增一個名為 “admin” 的管理者:
htpasswd /etc/svn/account admin
是的,只要建立這一個管理者用戶即可,稍後可以在 Trac 的外掛程式來新增其它用戶及管理其權限。) 如果安装submin这步不用做,因为已经默认生成了admin的帐号。
9. 建立第一個 Trac 的專案
繼續在 /var/trac 建立一個名為 “project1″ 的專案:
trac-admin /var/trac/project1 initenv
執行時會問你一些東西,你需要輸入 “Project Name” 代表專案名稱,而 “Path to repository” 必須輸入 “/var/svn/project1“,代表 SVN 儲存庫的路徑,其它選項只要按 Enter 使用預設值即可。這裡面的值稍後可以在專案目錄底下的 conf/trac.ini 做修改。
接著仍需將專案的擁有者改為 “apache”:
chown -R apache:apache /var/trac/project1
10. 安裝 Trac 的外掛程式
安裝 Trac 的外掛程式前,需安裝 python-setuptools 及建立 Python Egg 的快取目錄:
cd /tmp
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
mkdir /var/www/.python-eggs
chown apache /var/www/.python-eggs
以 easy_install 安裝五個實用的 Trac 外掛程式 (安裝 for Trac 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.11
easy_install http://trac-hacks.org/svn/svnauthzadminplugin/0.11
easy_install -Z -U http://trac-hacks.org/svn/xmlrpcplugin/trunk # 0.11
這五個外掛程式分別為:
1.WebAdmin: Trac 的基本管理模組,这个trac11版本以后已经兼容了这个插件
2.。
3.IniAdmin: trac.ini 管理。
4.Account Manager: Trac 的用戶管理。
5.TracWiki WYSIWYG Editor: 讓 Wiki 編輯器變成 WYSIWYG 編輯器。
6.Svnauthz File Administration: SVN 的帳號及存取權限管理。
7.Xmlrpcplugin: svn客户端连接。
然後繼續編輯 /var/trac/project1/conf/trac.ini,在最後加上:
[components]
#啟用 WebAdmin 外掛程式
webadmin.* = enabled
#啟用 IniAdmin 外掛程式
iniadmin.iniadmin.iniadminplugin = enabled
#啟用 TracWysiwyg 外掛程式
tracwysiwyg.* = enabled
#啟用 SvnAuthzAdmin 外掛程式
svnauthz.* = enabled
#啟用 AccountManager 外掛程式
acct_mgr.api.accountmanager = enabled
acct_mgr.htfile.HtPasswdStore = enabled
#啟用 Xmlrpcplugin 外掛程式
tracrpc.* = enabled
#關閉預設的 Http 登入認證方式,改用 AccountManager 的登入認證
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 = /var/lib/submin/htpasswd
password_store = HtPasswdStore
另外,你還要到 [trac] 區塊找到 “authz_file” 及 “authz_module_name” 這兩個參數,分別設為:
authz_file = /var/lib/submin/authz
authz_module_name = project1
這兩個參數與 SVN 的存取權限有關,”authz_module_name” 要設成 SVN 的儲存庫名稱。
最後,你可能還要再修改 “default_charset” 參數,預設是 “iso-8859-15″,請改成與你 Checkin 到 SVN 儲存庫內的檔案相同文字編碼。
10. Trac 的用戶管理
通常我會先指定 Trac 的管理者、移除訪客的權限、增加一個一般用戶群組,指令如下:
trac-admin /var/trac/project1 permission add admin TRAC_ADMIN
trac-admin /var/trac/project1 permission remove anonymous '*'
trac-admin /var/trac/project1/ permission add  anonymous  WIKI_VIEW TICKET_VIEW SEARCH_VIEW
#Xmlrpcplugin插件需要这个权限
trac-admin /var/trac/project1 permission add @user LOG_VIEW FILE_VIEW WIKI_VIEW WIKI_CREATE WIKI_MODIFY SEARCH_VIEW REPORT_VIEW REPORT_SQL_VIEW
trac-admin /var/trac/project1 permission add @user TICKET_VIEW TICKET_CREATE TICKET_MODIFY BROWSER_VIEW TIMELINE_VIEW CHANGESET_VIEW ROADMAP_VIEW MILESTONE_VIEW
#每个库固定的组权限
trac-admin /var/trac/DoNet/ permission add  Programmer MILESTONE_VIEW REPORT_VIEW TICKET_VIEW

在 Trac 裡,用戶與群組的命名及管理方式是沒有什麼區別的,用戶也可以是群組,所以,你也可以把第一個用戶指定給第二個用戶,那第一個用戶就會擁有與第二個用戶一樣的權限。在上面的指令,我新增了一個名稱叫 “@user” 的群組以做為識別,並設定其權限,只要把用戶指定給 @user,就可以使用相同的權限。
11. 設定完成
所有的設定都完成了,請重新啟動 apache:
service httpd restart
現在該裝的都裝好了,Trac 的存取位址為 “http://192.168.1.10/trac“,SVN 的存取位址為 “http://192.168.1.10/svn/project1“。
用瀏覽器連上 Trac 的存取位址,選擇進入 “project1″ 專案後,會顯示 Forbidden 說你沒有讀取權限,因為我們在上一個步驟已經把訪客所有的權限給移除了,現在你只能在網頁的右上角找到 “login” 來登入 “admin” 帳號。
成功登入 admin 之後,你可以從導覽列右邊的 [Admin] 進入管理介面,其中:
1.General 下的 “Permissions” 是用來管理 Trac 的使用權限
2.Account 下的 “Users” 可以用來管理 Trac 及 SVN 的用戶 (/var/lib/submin/htpasswd)
3.Subversion 下的 “Subversion Access” 才是用來管理 SVN 的路徑存取權限及 SVN 的用戶群組 (/var/lib/submin/authz)

現在你要進行的,除了新增用戶(Users)及修改權限(Permissions)之外,你如果點選導覽列上的 [Browse Source] 系統也會跟你說權限不足,同樣的,現在任何人都還不能存取 SVN 的專案(http://192.168.41.101/svn/project1),因為 “/var/lib/submin/authz” 這個檔案的內容還是空白的,你必須到 Trac 管理介面的 “Subversion Access” 去讓你的用戶擁有讀寫 “/” 這個路徑的權限才行。

运维网声明 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-322728-1-1.html 上篇帖子: apache httpd.conf 配置详解 下篇帖子: apache日志信息详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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