apache+svn+trac安裝及配置2

 

安裝配置Tracpython

 

Trac是一個很是優秀的源代碼瀏覽工具,如今也很流行.在安裝前,須要注意的是,Trac須要如下幾個軟件的支持,安裝前必定要先安裝好web

 

要預先安裝的軟件包在trac-0.11.2的INSTALL文件裏有列出,以下:sql

 

* Python, version >= 2.3.chrome

   + Please keep in mind, that for RPM-based systems you will also need數據庫

   python-devel and python-xml packages.apache

 * Genshi, version >= 0.5api

 * Optionally, Subversion, version >= 1.0. (>= 1.1.x recommended)and Subversion瀏覽器

SWIG Python bindings (not PySVN).服務器

 * PySQLite, version 2.x for SQLite 3.xsession

 * 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項目對應一個SVN  repository,這是應用中應該注意的.

 

# mkdir -p /home/trac

#trac-admin /home/trac/my_project  initenv

 

這個命令便可啓動初始化/home/trac/my_project項目的交互進程,是創建trac項目,運行後提示以下:


    Project Name [My Project]> 輸入項目名稱   //隨便起個名字
    Database connection string [sqlite:db/trac.db]>    //直接回車

Repository type [svn]>                 //倉庫類型svn回車
    Path to repository [/path/to/repos]>  //倉庫路徑 輸入剛纔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"
<Directory "/usr/share/trac/htdocs">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

ScriptAlias /trac /usr/local/apache2/cgi-bin/trac.cgi
<Location "/trac">
    SetEnv TRAC_ENV_PARENT_DIR "/home/trac"
</Location>

<Location "/trac/*/login">
    AuthType Basic
    AuthName "Trac Login"
    AuthUserFile /etc/svntrac.htpasswd
    Require valid-user
</Location>

 

密碼文件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 wiliiwin  admin


在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:

這裏提供了不一樣版本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插件能夠自動把相關的配置參數加到這個配置文件裏面,

因此咱們基本沒有用手動添加,這裏把主要

的配置參數貼出來,要是沒有哪行的配置參數,須要本身手動添加下:

 

[account-manager]

password_store = SessionStore

hash_method = HtPasswdHashMethod

 

[components]

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配置文件

 

#<Location "/trac/*/login">    //把這些配置都用#註釋起來

                            

#    AuthType Basic

#    AuthName "Trac Login"

# AuthUserFile /etc/svntrac.htpasswd

#    Require valid-user

#</Location>

 

重啓apache服務,使插件生效

# service httpd stop

# service httpd start

 

再轉回到trac web的頁面,這個時候就會多出一個導航

 

 

而後咱們點擊users,出現以下的頁面:

 

 

 

能夠在右邊進行用戶的添加以及用戶密碼的修改,大大方便了管理

任務.至於其餘插件與此插件的安裝方式大同小異,至於配置參數可

以到官方站點進行查詢.

相關文章
相關標籤/搜索