Installing trac on OSX

2008/08/22
~ 阿亮 ~

Installing trac on OSX with mysql db.

MacOSX 10.5.4 Leopard with MacPorts

◎ 安裝 trac

sudo port install trac +mysql

+mysql 表示可以原 sqlite 改用 mysql.

◎ 安裝資料庫 參考 http://trac.edgewall.org/wiki/MySqlDb 建立 DB

CREATE DATABASE trac_projects DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER tracuser IDENTIFIED BY 'password';
GRANT ALL ON trac_projects.* TO tracuser;

◎ 啟始某目錄做為放置 Trac 的目錄

trac-admin /Users/derjohng/TracDBs/Projects/ initenv

四個步驟

Project Name [My Project]> Projects
Database connection string [sqlite:db/trac.db]>  mysql://tracuser:password@localhost/trac_projects
Repository type [svn]>
Path to repository [/path/to/repos]> /Users/derjohng/SVN_repo/Projects

◎ 可能出現下述錯誤訊息

LookupError: unknown encoding: X-MAC-TRAD-CHINESE

這是 python encoding 的問題,找出

/opt/local/lib/python2.5/site-packages/trac/admin/console.py line:119

encoding = locale.getpreferredencoding() # sys.argv

換成

encoding = 'utf-8'

◎ 設定 httpd.conf

裝完 mod_python

sudo port install mod_python25

然後此行加到 httpd.conf

LoadModule python_module modules/mod_python.so

為每個 Trac DB 設定如下

Alias /trac/Projects/ "/Users/derjohng/TracDBs/Projects/"
<Directory "/Users/derjohng/TracDBs/Projects/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv "/Users/derjohng/TracDBs/Projects/"
    PythonOption TracUriRoot "/trac/Projects"
</Directory>

可能有下述錯誤

[error] make_obcallback: could not import mod_python.apache.
ImportError: No module named mod_python.apache

這是 mod_python 要找 python 路徑出問題,可以檢查是否 python 能用到 MacOSX 舊的,而非 MacPorts 版

看一下 ls /usr/bin/py* 是不是非 MacPorts 的 python 程式仍存在,若是全清掉

再重建 mod_python2.5 之後就可以了

◎ 網頁也可能出現下述錯誤的訊息

LookupError: unknown encoding: X-MAC-TRAD-CHINESE

找出 /opt/local/lib/python2.5/site-packages/trac/util/datefmt.py line:111 的

encoding = locale.getlocale(locale.LC_TIME)[1] or encoding

改成

encoding = 'utf-8'

應該 locale.LC_TIME=X-MAC-TRAD-CHINESE 的緣故

◎ Trac 的 login 機制,是藉由 Apache Authentication 來進行,apache 設定如下:

<Location /trac/Projects/login>
  AuthType Basic
  AuthName "MyProjects"
  AuthUserFile /Users/derjohng/TracDBs/htpasswd_file
  Require valid-user
</Location>

◎ Trac 預設只有匿名旳權限,要用 trac-admin 給予其他使用者的權限,比如

trac-admin /Users/derjohng/TracDBs/Projects/  permission add admin TRAC_ADMIN

即給 admin 有 TRAC_ADMIN 權限。

◎  Browser Source 的網頁瀏覽原本 UTF-8 文字,會變亂碼,找出 TracDBs/Projects/conf/trac.ini 內

default_charset = iso-8859-15

改成

default_charset = utf-8

即可



歡迎留言

敝站會審核留言的適宜性,您的留言可能會較晚發佈,而且小弟保留刪除的權利!!

站內搜尋



本站其他服務

本站其他軟體



  • 下一班火車 (nextRail)

    這個 app 只要開啟後,就根據定位幫你過濾出最近火車站的時刻表,不用再按任何按鈕了,方便您在很快時間內確定要坐的哪一班火車


  • 台灣匯率快算

    提供全球 150 種以上貨幣即時換算,以及各種匯率歷史變化圖。


  • 照片去背(PhotoEraser)

    一款方便移除背景的工具,產生透明背景圖可以存回原本相簿,也可分享到其他 App 使用.


  • 下一台單車(NextBike)

    打開定位即搜尋附近二十點自行車站點,不塞滿全部站點資料到整個地圖上,所以畫面簡潔方便看清楚目前所在地,若需要搜尋地圖其他位置附近站點,再點擊地圖即可。


  • 股海快訊 (iNews123)

    提供特定個股新聞更新推播、股價警示推播、新聞社群分享以及每日個股收盤價等功能的股票App/股市App.


  • 下一班高鐵 (nextTHSR)

    這個 app 只要開啟後,就根據定位幫你過濾出最近高鐵站的時刻表,不用再按任何按鈕了,方便您在很快時間內確定要坐的哪一班高鐵