星期五, 11月 28, 2008

New a svn repository and trac

如何新增 svn 檔案庫及其 trac ?

假設有個新專案,它的名字是 projectA
該專案的檔案庫欲放在 /home/svn/projectA
該專案的 trac 欲放在 /home/trac/projectA

建立檔案庫
svnadmin create /home/svn/projectA


設定檔案庫存取權限

chmod -R 775 /home/svn/projectA


vi /home/svn/projectA/conf/svnserve.conf
[general]
anon-access = none
auth-access = write


建立 trac
mkdir -p /home/trac/projectA


初始化 trac 環境
trac-admin /home/trac/projectA initenv

回答下面的問題
Project Name [My Project]> projectA
Database connection string [sqlite:db/trac.db]> ENTER
Repository type [svn]> ENTER
Path to repository [/path/to/repos]> /home/svn/projectA
Templates directory [/usr/share/trac/templates]> ENTER

修改 projectA trac 的存取權限,讓 httpd 可以存取
sudo chown -R www-data.www-data projectA


修改 projectA trac 的設定檔,在檔尾加上
[components]
#啟用 WebAdmin 外掛程式
webadmin.* = enabled
#啟用 IniAdmin 外掛程式
iniadmin.iniadmin.iniadminplugin = enabled
#啟用 TracWysiwyg 外掛程式
tracwysiwyg.* = enabled
#啟用 SvnAuthzAdmin 外掛程式
svnauthz.* = enabled
#啟用 AccountManager 外掛程式
acct_mgr.api.accountmanager = enabled
acct_mgr.htfile.HtPasswdStore = enabled
#關閉預設的 Http 登入認證方式,改用 AccountManager 的登入認證
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
#啟用帳號管理
acct_mgr.admin.AccountManagerAdminPage = enabled
#允許用戶變更密碼、刪除帳號
acct_mgr.web_ui.AccountModule = enabled
[account-manager]
password_format = htpasswd
password_file = /etc/svn/account
password_store = HtPasswdStore


修改 [trac] 區塊中的
authz_file = /etc/svn/authz
autoz_module_name = projectA
default_charset = utf-8


存檔離開

設定 trac 的使用者
新增管理員 admin
trac-admin /home/trac/projectA permission add admin TRAC_ADMIN


移除匿名存取使用者(anonymous)
trac-admin /home/trac/projectA permission remove anonymous '*'


新增群組 @projectA,進去 trac 管理介面時,只要將新增的使用者指定為此處新增的群組名,即可有相同的權限了。
trac-admin /home/trac/projectA permission add @projectA LOG_VIEW FILE_VIEW WIKI_VIEW WIKI_CREATE WIKI_MODIFY SEARCH_VIEW REPORT_VIEW REPORT_SQL_VIEW
trac-admin /home/trac/projectA permission add @projectA TICKET_VIEW TICKET_CREATE TICKET_MODIFY BROWSER_VIEW TIMELINE_VIEW CHANGESET_VIEW ROADMAP_VIEW MILESTONE_VIEW


用瀏覽器連上 Trac 的存取位址,例如 http://192.168.1.1/trac
選擇進入 projectA 專案後,會顯示 Forbidden 說你沒有讀取權限,因為我們在上一個步驟已經把匿名存取使用者所有的權限給移除了,現在你只能在網頁的右上角找到 「login」 來登入 「admin」 帳號。

成功登入 admin 之後,你可以從導覽列右邊的 [Admin] 進入管理介面,其中:

1. General 下的 「Permissions」 是用來管理 Trac 的使用權限
2. Account 下的 「Users」 可以用來管理 Trac 及 SVN 的用戶 (/etc/svn/account)
3. Subversion 下的 「Subversion Access」 才是用來管理 SVN 的路徑存取權限及 SVN 的用戶群組 (/etc/svn/authz)

參考自:
SVN + Trac + Apache 完整安裝攻略
http://www.vixual.net/blog/archives/232

Debian Linux 架設 Trac + VirtualHost
http://plog.longwin.com.tw/my_note-unix/2007/07/03/debian_trac_svn_virtualhost_2007

沒有留言: