X

在 FreeBSD 下架設 Trac

既然之前寫在 FreeBSD 下架設 Subversion後, 當然要來架 Trac, 已經達成到處亂架的地步了.. Orz..

以下是 在 FreeBSD 架設 Trac 的步驟: (下述是架好 Subversion 的狀況, 路徑等都參考在 FreeBSD 下架設 Subversion此文延用)

安裝 Trac

  1. cd /usr/ports/www/trac
  2. make install clean # 要選擇的預設即可

設定 Trac 路徑/初始化

  1. mkdir -p /home/www/trac/PROJECT_NAME/
  2. 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 就可以使用囉~

參考

Tsung: 對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
Related Post