既然之前寫在 FreeBSD 下架設 Subversion
後, 當然要來架 Trac, 已經達成到處亂架的地步了.. Orz..
以下是 在 FreeBSD 架設 Trac 的步驟: (下述是架好 Subversion 的狀況, 路徑等都參考在 FreeBSD 下架設 Subversion
此文延用)
安裝 Trac
- cd /usr/ports/www/trac
- make install clean # 要選擇的預設即可
設定 Trac 路徑/初始化
- mkdir -p /home/www/trac/PROJECT_NAME/
- trac-admin /home/www/trac/PROJECT_NAME initenv # 初始化
My Project => PROJECT_NAME
/path/to/repos => /home/www/svn/repository/PROJECT_NAME
設定權限
- chown -R www:www /home/www/trac/PROJECT_NAME
- trac-admin /home/www/trac/PROJECT_NAME permission remove anonymous '*'
- trac-admin /home/www/trac/PROJECT_NAME permission add ACCOUNT TRAC_ADMIN
設定 Trac 語系編碼/寄信
- smtp_always_bcc = # 設定 Ticket 變化, 要寄去哪些 Email
- smtp_enabled = true # 啟動
- smtp_from = # 寄件者 Email
- default_charset = iso-8859-15 => default_charset = utf-8
測試
- sudo tracd --port 8000 /home/www/trac/PROJECT_NAME # 就可以 http://DOMAIN_NAME:8000/PROJECT_NAME 連到囉.
讓 Apache 支援 Python Module
- 可選 mod_python 或 mod_wsgi, 在此選用 mod_python
- 目前預設 /usr/ports/www/python 版本是 2.x 版, trac 需要 3.x 版才能跑, 所以要用 mod_python3.
- cd /usr/ports/www/mod_python3
- make install clean
設定 Apache 載入 mod_python
- vim /usr/local/etc/apache22/httpd.conf
# 找到一堆 LoadModule 最下方加這一行
LoadModule python_module libexec/apache22/mod_python.so
單機使用 Trac apache conf 設定
- vim /usr/local/etc/apache22/Includes/PROJECT_NAME.conf # 單台機器, 直接連 /trac 使用的此設法即可
<Location /trac>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv "/home/www/trac/PROJECT_NAME"
PythonOption TracUriRoot "/trac/PROJECT_NAME"
</Location>
<LocationMatch /trac/[^/]+/login>
AuthType Basic
AuthName "Trac PROJECT_NAME"
# 跟 svn 用同一個即可
AuthUserFile /home/www/etc/svn-auth-file
Require valid-user
</LocationMatch>
測試
- /usr/local/etc/rc.d/apache22 restart # 此時應該就能用 http://DOMAIN_NAME/trac/PROJECT_NAME 使用了
Virtual Host 多機共用 Apache conf 設定
- vim /usr/local/etc/apache22/extra/httpd-vhosts.conf # 設定 Virtual Host, 多台機器共用 trac 設法(上面 Includes/PROJECT_NAME.conf 如果有設請移除)
<VirtualHost *:80>
DocumentRoot /home/www
ServerName VHOST_NAME
ErrorLog /var/log/httpd/trac.PROJECT_NAME.com-error_log
CustomLog /var/log/httpd/trac.PROJECT_NAME.com-access_log combined
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv "/home/www/trac/PROJECT_NAME"
PythonOption TracUriRoot "/trac/PROJECT_NAME"<LocationMatch /trac/[^/]+/login>
AuthType Basic
AuthName "Trac PROJECT_NAME"
AuthUserFile /home/www/etc/svn-auth-file
Require valid-user
</LocationMatch>
</VirtualHost>
測試
- /usr/local/etc/rc.d/apache22 restart # restart apache # 這樣子 http://VHOST_NAME/trac/PROJECT_NAME 就可以使用囉~