以下是Trac在Ubuntu環境下的搭建過程
一.從http://trac.edgewall.org/wiki/TracDownload下載Trac最新版(目前為0.12)
二.依據http://trac.edgewall.org/wiki/TracInstall的知道一步步安裝,以下為詳細過程
2.1.安裝必要的庫
2.1.1 檢查python是否已經安裝
2.1.2 安裝setuptools(後續安裝中會用到easy_install命令)
Ubuntu下可以很方便的用sudo apt-get install python-setuptools命令來安裝
2.1.3 安裝Genshi
sudo easy_install Genshi(Unbutu下可以方便的用,但在window下需要下載python egg安裝)
2.1.4 安裝svn
包括svn服務以及python的svn實現,注意,雙方的大版本必須要一致,比如svn服務的大版本是1.6,則python的相應實現也應該是1.6,否則在Trac中整合時將會出問題,切記!
apt-get install subversion
apt-get install python-subversion
2.1.4 安裝Apache
可以通過sudo apt-get install apache2安裝,也可以去Apache網站下載最新版本安裝
2.1.5 安裝mod_wsgi(使用者也可以根據各自需要安裝mod_python,但推薦使用mod_wsgi,因為mod_wsgi更快,而且mod_python已經停止開發,這裡需要特別注意的是,不管是安裝什麼mod,都要特別注意該mod的python版本和要啟動並執行python版本是否一致!!)
去http://code.google.com/p/modwsgi/下載mod_wsgi安裝
也可以通過sudo apt-get install libapache2-mod-wsgi命令安裝
2.2.安裝可選庫
2.2.1 安裝Babel
為支援Localization,實現不同語言的選擇,請安裝Babel
可以通過sudo svn co http://svn.edgewall.org/repos/babel/ /home/download/Babel命令來下載,但要確保svn已安裝
因為Babel依賴於CLDR,所以再安裝之前還需要匯入CLDR,根據所下載的Babel安裝說明選擇合適的CLDR版本下載,下載後執行sudo python ./scripts/import_cldr.py /home/download/common命令匯入CLDR(注,/home/download/common為解壓後的CLDR路徑,需要和實際路徑保持一致!)。安裝CLDR非常重要,如果選擇來安裝Babel而沒有安裝CLDR,則再安裝Trac時將出錯,導致安裝失敗。如果不考慮本地化,可以略過這一步,不安裝Babel,也就用不著安裝CLDR。
下載完成後進入下載目錄中的trunks目錄執行sudo python setup.py install命令安裝Babel
2.2.2 安裝Docutils模組,Tra/home/download/common/home/download/commonc wiki中使用
在http://docutils.sourceforge.net/下載
解壓後執行sudo python setup.py install命令安裝
2.2.3 安裝Pygments,文法高亮工具
在http://bitbucket.org/birkenfeld/pygments-main/downloads下載
解壓後執行 sudo python setup.py install
2.2.4 安裝pytz,主要是時區處理
從http://pypi.python.org/pypi/pytz/#downloads下載pytz(注意選擇針對python的版本)
執行sudo easy_install pytz-2010l-py2.6.egg 命令安裝pytz
2.3 安裝Trac
可以通過setuptools的easy_install命令來安裝,具體命令為easy_install Trac==0.12,也可以通過下載後再安裝,具體命令為sudo python seup.py install
2.4 建立Trac項目運行環境
執行sudo trac-admin /home/diebold-Trac initenv命令,建立Trac項目,在建立的過程中需要回答一些問題,關於要建立的項目名稱,所用的資料庫連結字元等等。所填寫的內容都將存在該項目的trac.ini設定檔中,使用者不用擔心在建立過程中出錯,所有都可以再trac.ini中變更。
建立完成以後,可以執行tracd --port 8000 /home/diebold-Trac命令來啟動Trac獨立的web服務。
開啟瀏覽器,輸入http://127.0.0.1:8000,即可瀏覽Trac。如果進入項目以後,頁面提示對某某目錄沒有讀寫權限,則使用者需要手動去更改該目錄的讀寫權限,具體命令為sudo chmod -R 777 diebold-Trac
2.5 配置Trac
2.5.1 產生WSGI設定檔
可以很方便的通過tarc-admin diebold-Trac deploy diebold-Trac命令來產生WSGI的相關設定檔。命令成功執行後產生cgi-bin/trac.wsgi檔案,/該檔案即為wsgi設定檔,後面配置Apache的時候將會用到
2.5.2 配置Apache
開啟Apache設定檔httpd.conf(如果不清楚apache具體安裝位置,可以執行whereis apache2命令來尋找,一般來說設定檔在/etc/apache2中 )
在httpd.conf中添加以下配置
WSGIScriptAlias /trac /home/diebold-Trac/cgi-bin/trac.wsgi
<Directory /home/diebold-Trac>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
配置完成後應該重啟apache,重啟命令為sudo /etc/init.d/apache2 restart
注,apache常用命令為sudo /etc/init.d/apache2 start or restart or stop
重啟apache後,即可通過http://localhost/trac來瀏覽Trac
2.5.3 配置基本許可權控制
建立htpasswd檔案,建議第一個使用者使用命令列建立,其他使用者可以使用Trac的外掛程式來做
htpasswd -c htpasswd admin
按照提示完成建立使用者後,給使用者賦予admin許可權,方便後續操作,具體命令為trac-admin /home/diebold-Trac permission add admin TRAC_ADMIN
2.5.4 安裝Trac外掛程式
安裝Account Manager Plugin,具體命令為easy_install https://trac-hacks.org/svn/accountmanagerplugin/trunk
配置Account Manager,使用者可以根據實際需要選擇使用不同的模組,但需要注意的時,如果使用LoginModule 的話,需要現禁用web_ui,具體方法為,將Trac.ini中的components配置中添加acct_mgr.web_ui.LoginModule = enabled,同時需要設定password store
[account-manager]
; configure the plugin to store passwords in the htpasswd format:
password_store = HtPasswdStore
; with Trac < 0.10 use this instead:
password_format = htpasswd
; the file where user accounts are stored
; the webserver will need write permissions to this file
; and its parent folder
password_file = /var/trac/trac.htpasswd
另外,需要在apache的配置中將 Require valid-user配置注釋掉,否則啟動並執行時候會出錯,切記切記!
以上步驟完成後重啟apache,將會發現登入時使用的頁面和之前apache預設的已經不太一樣!
安裝Svnauthz File Administration Plugin(管理SVN使用者和許可權),從http://trac-hacks.org/wiki/SvnAuthzAdminPlugin下載後安裝
安裝完成後應該對trac.ini的svn相關選項進行設定,具體為
authz_file = /home/Repository/D-Cash/conf/authz
authz_module_name = D-Cash(需要特別注意,這裡填寫的應該是svnadmin create時建立的repository名字,切記切記,否則使用svnauthadmin系統管理權限的時候會報出invalidpath,導致執行不成功!)
配置成功後就可以再Trac的admin頁面通過Subversion Access來管理SVN的使用者和許可權
2.5.5 配置版本庫(Repository)
先建立Repository, 具體命令為 sudo svnadmin create D-Cash
通過Trac添加repository後應該執行一下同步命令,具體命令sudo trac-admin /home/diebold-Trac repository resync D-Cash
最好能在svn的hook中配置一下post-commit,這樣以來svn更新的時候就能在Trac的source broswer中看到相應的更新,具體做法為:在post-commit中添加如下命令:sudo /usr/local/bin/trac-admin /home/diebold-Trac changeset added $REPOS $REV
啟動svnserve命令為svnserve -d -r /home/Repository/