Trac on Ubuntu
緣由
由於Jazz大力推薦,使用Trac已經好一陣子,覺得是一個不錯的文件工作管理系統。不過都用Jazz架好的系統,也想要自己試一下怎麼安裝架設。除此之外,trac的預設CSS還有更符合個人瀏覽習慣的改進空間,加上一些trac的plug in也想試試看。 我的安裝環境於 Ubuntu 8.04 & trac 0.11,參考主要是官方網站:
雖然官網介紹得很詳盡,不過還是有些小細節要注意,安裝方法如下:
環境參數
查看 Ubuntu 機器資訊
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=8.04 DISTRIB_CODENAME=hardy DISTRIB_DESCRIPTION="Ubuntu 8.04.1"
環境路徑
以下內容會用到的路徑統一在此作說明解釋
名稱 | 目錄 |
Trac安裝路徑 | /usr/share/trac |
Trac專案根目錄 | /var/lib/trac |
Trac專案子目錄 | /var/lib/trac/waue |
版本控制根目錄 | /var/lib/svn |
網址 | http://gm1.nchc.org.tw/waue |
- Trac 安裝路徑 包含了原始的trac內容,以及程式碼,然而當你要用trac開一個專案時,Trac會要你裝在其他的路徑以做分離,免得原始的Trac跟你的專案搞混在一起,因此Trac專案根目錄就是你之後會把專案放的目錄囉!
Trac 0.11 安裝
1. 軟體套件
- 安裝 apache, setuptools 及一些 libraries:
$ sudo apt-get install apache2 libapache2-mod-python \ libapache2-svn python-setuptools subversion python-subversion
- 安裝 Easy_install
$ sudo mkdir /opt/setuptools $ cd /opt/setuptools/ $ sudo svn co http://svn.python.org/projects/sandbox/branches/setuptools-0.6/ $ cd setuptools-0.6/ $ sudo python setup.py install
- 用easy_install安裝trac (當然也可以直接用apt-get 安裝,只是目前是trac 0.10版)
$ sudo easy_install Trac
2. 建立 Trac 專案根目錄
- 建立 Trac 專案根目錄並設定apache有讀寫權限
$ sudo mkdir /var/lib/trac $ sudo chown www-data:www-data /var/lib/trac
3. 整合trac到 Apache2
設定trac整合到apache的步驟
- 先創立一個trac模型
$ sudo vi /etc/apache2/sites-available/trac
- 填入此模型的內容
<VirtualHost *> ServerAdmin waue0920@gmail.com ServerName gm1.nchc.org.tw DocumentRoot /var/www ErrorLog /var/log/apache2/error.trac.log CustomLog /var/log/apache2/access.trac.log combined Alias /template/chrome/common /usr/share/trac/htdocs <Location /waue> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnvParentDir /var/lib/trac PythonOption TracUriRoot /waue PythonOption PYTHON_EGG_CACHE /var/www/.python-eggs </Location> # use the following for one authorization for all projects # (names containing "-" are not detected): <LocationMatch "/waue/[[:alnum:]]+/login"> AuthType Basic AuthName "trac" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </LocationMatch> </VirtualHost>
- 建立python在apache2上用到的cache目錄
$ sudo mkdir /var/www/.python-eggs $ sudo chown www-data.www-data /var/www/.python-eggs
- 然後,取消default模板,換成剛剛的trac模板
$ sudo a2dissite default $ sudo a2ensite trac
4. SVN
讓trac有版本控制的功能。
- 建立 /var/lib/svn 目錄來做同步的資料儲存庫,並用指令 svnadmin create 開啟svn專案
$ sudo mkdir /var/lib/svn $ sudo svnadmin create /var/lib/svn/waue $ sudo chown -R www-data /var/lib/svn $ sudo chown -R www-data /usr/share/trac
修改 /etc/apache2/mods-available/dav_svn.conf 以設定svn目錄參數
<Location /svn> # Uncomment this to enable the repository, DAV svn # Set this to the path to your repository SVNParentPath /var/lib/svn </Location>
- ps: 關於svn detail請見 References: Commands populate files into SVN repository
5. 創建專案並啟動 Trac
- 用指令trac-admin /var/lib/trac/waue initenv,在 /var/lib/trac根目錄中建立一個waue專案
$ sudo trac-admin /var/lib/trac/waue initenv
- 執行trac-admin這個指令會有query詢問環境參數如何設定:
- Project Name [My Project]> waue
- Database connection string db/trac.db> [Enter鍵]
- Repository type [svn]> [Enter鍵]
- Path to repository path/to/repos> /var/lib/svn/waue
- Path to repository path/to/repos> 這行要設定的是svn的路徑,設錯會有warning.
- 接著設定權限並重新啟動apache2
$ sudo chown -R www-data /var/lib/trac $ sudo /etc/init.d/apache2 reload
- 在瀏覽器輸入你的網址http://localhost/waue就可以看到Trac網頁內容囉! http://localhost/waue
ps: 更完整的Mod_Python設定,可以看 TracModPython
6. Plugin
安裝好用的套件
apt-get trac plugins
$ sudo apt-get install build-essential graphviz htmldoc enscript
Easy_install Trac plugins
- 官網介紹區
$ sudo easy_install http://svn.edgewall.org/repos/genshi/trunk/ $ sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk $ sudo easy_install http://trac-hacks.org/svn/customfieldadminplugin/0.11 $ sudo easy_install http://trac-hacks.org/svn/eclipsetracplugin/tracrpcext/0.10 $ sudo easy_install http://trac-hacks.org/svn/iniadminplugin/0.11 $ sudo easy_install http://trac-hacks.org/svn/masterticketsplugin/0.11 $ sudo easy_install http://trac-hacks.org/svn/pagetopdfplugin/0.10/ $ sudo easy_install http://trac-hacks.org/svn/progressmetermacro/0.11 $ sudo easy_install http://trac-hacks.org/svn/ticketdeleteplugin/0.11 $ sudo easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.11 $ sudo easy_install http://wikinotification.ufsoft.org/svn/trunk
- jazz推薦區
//Redirect $ sudo easy_install http://svn.ipd.uka.de/repos/javaparty/JP/trac/plugins/redirect-0.11/ //AztechCalendar $ cd /opt/setuptools/ $ sudo svn co http://trac-hacks.org/svn/calendarplugin $ cd calendarplugin/0.10 $ python setup.py bdist_egg $ sudo easy_install dist/AztechCalendar*.egg
7. Adding Authentication
做了權限設定之後,才能夠登入trac,編輯文章等等..
權限設定
- 用 htpasswd -c 來創建 password 檔:
$ htpasswd -c /etc/apache2/dav_svn.passwd admin New password: <type password> Re-type new password: <type password again> Adding password for user admin
- 增加使用者也是用htpasswd,但不要加參數 "-c"
$ htpasswd /etc/apache2/dav_svn.passwd waue New password: <type password> Re-type new password: <type password again> Adding password for user waue
- 設定Trac的login到Apache的模型($ sudo vi /etc/apache2/sites-available/trac):
<Location "/trac/login"> AuthType Basic AuthName "Trac" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
多個專案
- 如果你有很多的project要管理,可以用下面的方法來設定多個專案:
<LocationMatch "/trac/[^/]+/login"> AuthType Basic AuthName "Trac" AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </LocationMatch>
更安全的作法
- 安全因素考量,建立SSL連線;或AuthType用「Digest」代替 「Basic」. 更多 Apache HTTPD documentation 。
<Location "/trac/login"> LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so AuthType Digest AuthName "trac" AuthDigestDomain /trac AuthUserFile /etc/apache2/dav_svn.passwd Require valid-user </Location>
- 新增 .htpasswd file with htdigest instead of htpasswd as follows:
$ sudo htdigest /etc/apache2/dav_svn.passwd trac admin
- where the "trac" parameter above is the same as AuthName above ("Realm" in apache-docs).
$ sudo chown www-data /etc/apache2/dav_svn.passwd
Last modified 16 years ago
Last modified on Feb 10, 2009, 6:00:44 PM