http://www.dotblogs.com.tw/remhom/archive/2010/10/13/18308.aspx
參考以上網址修改部份內容,因為做的時侯出了一些錯誤訊息,我改了一下
我的硬體規格
- MAC BOOK PRO
- OS : 10.7.2
- 使用套件版本:bitnami-redmine-1.2.2-0-osx-x86-installer
Mac OSX 與 Redmine 的邂逅【Part1】安裝 Redmine + Subversion
想要有個團隊網站,有共同的文件庫、行事曆,還可以指派工作,相關的過程都用Email通知,
嗯~如果有甘特圖那也不錯唷,什麼!還可以跟版本控制軟體結合唷?簽入的程式碼可以跟工作指派連結,那很棒耶!
聽起來有些部分是不是跟TFS有點相似的感覺?我們今天要介紹的就是免費的Redmine軟體,
其實我個人有用過TFS2005與2008,其實對於微軟的TFS感覺到相當的方便,
團隊的網站也讓成員彼此之間的文件控管、分享有了不一樣的感受,對於團隊分工幫助真的很大,
Redmine的部分功能與TFS類似,有些功能更是人性化些,例如工作與日曆、甘特圖的結合,而且最棒的是支援繁體中文,
若您沒有預算可以建置TFS的環境,強烈建議使用Redmine+subversion來控管您的專案。
接下來我會撰寫系列的文章,透過下列工具的整合,打造一個小型專案團隊所需要的程式開發環境應用。
- Mac OSX server ( 作業系統)
- Redmine ( 專案管理軟體)
- Subversion ( 版本控制軟體)
- Ankhsvn套件 ( Visual Studio 外掛,讓 Visual Studio.Net與Subversion結合)
以下的文章適合
- 想用版本控制系統,但又不想花錢的人
- 習慣使用TFS卻無法使用TFS的人
- 想建立團隊專案管理網站的人( wiki、文件管理、甘特圖、工作指派、自動通知...)
- 規模較中小型的開發團隊
- 受夠了 Project 跟 Excel 的人 XD
閱讀前,請先了解什麼是 Redmine?
(請自行Google啦!介紹的原文居多,自己啃一下 。 官網 http://www.redmine.org)
或是你也可以直接上官方demo的網站使用 http://demo.redmine.org/ ,這樣比較快了解,
這邊先貼幾張圖
共用日歷,與工作指派結合
甘特圖 (子工作回報完成度,會自動顯示在上面,並自動計算父工作項目的完成度)
安裝前準備
- 安裝工具SSH Secure Shell ( 重要!讓 Windows 可以遠端 Terminal Mac OSX)
- Mac中文化 ( 純粹用起來爽而已)
- 安裝yahoo keykey 輸入法 (同上)
- 學會 vi 指令 ( 重要!)
安裝步驟:
- 安裝 Bitmine的 redmine版 http://bitnami.org/stack/redmine
(Include all the dependencies necessary to run the application, such as Apache, MySQL, Ruby, Rails and Subversion.)
可以省去很多麻煩,強烈建議初學者使用
請使用root 身分安裝,如果要安裝在port80上的話,請將OSX預設的網站關閉。 - Subversion 環境設定
- 確定SVN版本,因為Mac 已經有內建的svn了,所以目前是1.6.5版
1
root# svn --version
2
svn, version 1.6.5 (r38866)
3
compiled Jan 26 2010, 17:43:42
- 將內建的SVN變更為 Bitnami 版本
使用SSH登入OSX,修改/etc/bashrc,在最後加入 export PATH=/Applications/redmine-1.2.2-0/subversion/bin:$PATHSVN版本已經變成1.6.16,是目前的最新版本1
root# sudo vi /etc/bashrc
2
root# sudo reboot
3
root# svn --version
5
svn, version 1.6.16
- 建立SVN的主目錄 (你可以建在你喜歡、好記的地方)註1:不變更為 daemon 的話,後續使用類似像ankhsvn套件時,會發生類似
01
'建立主目錄
02
root# sudo mkdir /Applications/redmine-1.2.2-0/subversion/repos
04
'建立一個專案
05
root# sudo svnadmin create /Applications/redmine-1.2.2-0/subversion/repos/repoOne
07
'建立三個基本目錄 (以下步驟非必要)
08
root# cd /Applications/redmine-1.2.2-0/subversion/repos/repoOne
09
root# sudo mkdir tmp
'建立測試資料夾
10
root# cd tmp
11
//從指定的file路徑checkout抓最新版本的下來
root# sudo svn co file:///Applications/redmine-1.2.2-0/subversion/repos/repoOne13
root# cd repoOne
14
//隨便建了三個目錄
root# sudo svn mkdir tags branches trunk15
// 把剛建好的三個目錄 check-in 到主機的
root# sudo svn ci -m"check in by XANDY"
18
'變更使用者為 daemon,讓使用者可以透過 http 來寫入資料,並將資料夾權限更改為755。
19
root# sudo chown -R daemon /Applications/redmine-1.2.2-0/subversion/repos
20
root# sudo chmod -R 755 /Applications/redmine-1.2.2-0/subversion/repos
svn: Can't open file '/XXX/SVN/repos/db/txn-current-lock': Permission denied 的錯誤訊息
註2:資料夾權限不變更為755的後,後續檔案在lock的時候會失敗。
01
設定 apache2 server ,啟用svn模組
07
root# sudo vi /Applications/redmine-1.2.2-0/apache2/conf/httpd.conf
09
'將下面兩行前的#拿掉
10
LoadModule dav_svn_module modules/mod_dav_svn.so
11
LoadModule authz_svn_module modules/mod_authz_svn.so
13
'並加入下列的參數
15
將下面前的#拿掉
#
DAV svn16
SVNParentPath /Applications/redmine-1.2.2-0/subversion/repos
17
SVNListParentPath on
19
# how to authenticate a user
20
AuthType Basic
21
AuthName
"Subversion repository"
22
AuthUserFile /Applications/redmine-1.2.2-0/subversion/svnuser.auth
24
# only authenticated users may access the repository
25
Require valid-user
27
將下面前的#拿掉
#- 設定 SVN的http存取的帳號、密碼
- 建立認證檔案 root# sudo vi /Applications/redmine-1.2.2-0/subversion/svnuser.auth (請用 :wq! 寫入檔案)
- $ sudo htpasswd -cm /Applications/redmine-1.2.2-0/subversion/svnuser.auth user1 (帳號-xandy請自取)
Password:
New password: // 輸入新增帳號的密碼
Re-type new password:
Adding password for user user1
$ sudo chmod 755 /Applications/redmine-1.2.2-0/subversion/svnuser.auth
$ sudo chown _www /Applications/redmine-1.2.2-0/subversion/svnuser.auth
- 瀏覽 http://localhost:8080/repos
如果有出現帳號密碼驗證,通過後有顯示網頁的話,就表示svn沒問題,並可以提供http存取。
- 確定SVN版本,因為Mac 已經有內建的svn了,所以目前是1.6.5版
3. 設定redmine與subversion的連結
http://localhost:8080/redmine/
參考文章:http://asuralyc.blogspot.com/2009/05/svn-websvn-ssl-trac-on-leopard.html
---------------
TFS 的替代方案:Redmine【Part2】開機自動啟動 Redmine
安裝好Redmine後,有一個問題需要解決,就是他開機並不會自動執行服務,
所以會發生一種誤解,就是明明安裝完測試都ok,怎麼重開機後網站就掛點了...
我們可以利用 /Applications/redmine-1.2.2-0/ctlscript.sh status 指令來檢查redmine的服務狀態
會發現我們的服務其實都沒有啟動...
subversion already not running
apache already not running
redmine already not running
mysql already not running
我們可以在開機後,利用 /Applications/redmine-1.2.2-0/ctlscript.sh start的方式來啟動這四項服務,
讓網站順利運作,但是既然是要當作團隊的伺服器,每次都要手動開啟未免太遜也太笨,
xandy自創方法
1. 建立一個檔案 redmine-start.exec (Unix Executable File)
內容只寫一行 /Applications/redmine-1.2.2-0/ctlscript.sh start
2. 將rednube-start.exe加到mac 開機自動啟動列方法如下。
3. 重新開機就會自動執行
當Mac電腦開機時,預設會自動啟動一些系統必備的應用程式,讓我們一開機時就可以快速使用這些工具或服務。
如果哪天你安裝了某些軟體,移除後卻在系統中留下了沒清除乾淨的垃圾,或者某些程式你並不希望每次開機都自動啟動,那該怎麼在Mac OS X系統中將這些開機時自動啟動的項目移除呢?
或者你希望Mac電腦一開機就自動啟動你要執行的程式、自動化工具或某些常用程式,該怎麼把它加入到開機啟動清單呢?
第1步 在桌面下方的Dock上的「系統偏好設定」圖示按一下。
第2步 開啟「系統偏好設定」視窗後,按一下「帳號」圖示。
第3步 由於開機啟動清單的管理是依照帳號來個別設定,請先從左邊選單點一下你要修改的帳號名稱,再切換到「登入項目」。
「登入時會自動打開的項目」清單中會列出該帳戶開機時會自動開啟的軟體或程式,如果你不希望自動開啟某個程式,請在「隱藏」方框打勾,如果要刪除該項目,請點選使其反白後再按「-」將他刪除即可。如果要新增其他項目,請按「+」。
第4步 如果你在前一個步驟按了「+」新增其他啟動項目之後,接著會自動開啟應用程式選單,請從清單中點選你要啟動的軟體再按「加入」按鈕。
第5步 設定完之後,登入啟動清單中就會出多出剛剛選取的項目,將此視窗關閉,下次開機時便會自動開啟你指定的程式囉。
-------------------------
TFS 的替代方案:Redmine【Part3】啟用 Redmine 的 Email 通知
在這邊鬧了很大的笑話,那就是我設定了好幾天,Email就是不通,
幾乎快把國外所有的文章都翻爛了,到最後才發現是我的Mac Mini的網路設定出了問題...
因為我的主機是透過AirPort + pppoe 來取得固定IP,
當我撥接完取得IP後,發現無法上網,但是SSH卻可以遠端Terminal進去,所以我就不以為意,
一直在設定我的redmine,最後到了要使用郵件通知時,才發現無法使用,因為只要寄測試信都會有逾期的報錯,
最後進去看了postfix 的錯誤訊息,才發現是主機的DNS有問題,這時候才讓我回想到,對唷!當初PPPOEP時是沒法瀏覽網頁的,
最後進去MAC的系統偏好,將PPPOE設為優先,賓果!郵件正常了 XD
下面是設定的過程,因為我繞了很多路,所以簡單的說明一下,或許會有多設定的地方,但應該不多^^"
作法:
利用 Mac OSX Server 內建的 Postfix 郵件服務寄發 Redmine郵件
步驟:
1.修改Redmine郵件設定檔 /Applications/redmine-1.2.2-0/apps/redmine/config/email.yml
預設是沒有emial.yml這個檔案的,所以您需要新增一個或是將資料夾內的email.yml.example變更一下,
因為我們要使用MAC的 mail server,所以我們將 email.yml設的內容只留下
production:
delivery_method: :sendmail
其他相關設定,例如要利用Gmail或是其他smtp,請參考官方文件:http://www.redmine.org/wiki/redmine/EmailConfiguration
2.設定OSX 中的Postfix
- 先利用指令 date | mail -s test 我的信箱@gmail.com ,寄一封測試信給自己,如果收的到,那恭喜你,可以跳過第二步驟。
- 設定 /etc/postfix/main.cf
- 幾個參數要設定mydomain、myhostname、mydestination (如果你沒有Domain Name的話,去申請個免費的吧!)
- 幾個參數要設定mydomain、myhostname、mydestination (如果你沒有Domain Name的話,去申請個免費的吧!)
- 幾個 postfix 常用指令
- postfix check :檢查 postfix 相關的檔案、權限等是否正確!
postfix start :開始 postfix 的執行
postfix stop :關閉 postfix
postfix flush :強制將目前正在郵件佇列的郵件寄出!
postfix reload:重新讀入設定檔,也就是 /etc/postfix/main.cf
postfix status:目前狀態
- postfix check :檢查 postfix 相關的檔案、權限等是否正確!
參考文章:簡易 Mail Server 架設 -- Postfix 設定
----------------------------
TFS 的替代方案:Redmine【Part4】設定 apache 與 subversion 的多專案權限
假設我們在subversion有多個專案,並且希望多個專案的權限要不一樣,那我們可以透過下列的方式達成。
subversion的目錄建置方式請參閱 Mac OSX 與 Redmine 的邂逅【Part1】安裝 Redmine + Subversion
設定方式如下:
- 修改 > sudo vi /Applications/redmine-1.2.2-0/apache2/conf/httpd.conf
DAV svn
#SVNListParentPath on
SVNParentPath /Applications/redmine-1.2.2-0/subversion/repos
AuthType Basic
AuthName "Subversion Login"
AuthUserFile /Applications/redmine-1.2.2-0/subversion/svnuser.auth # 使用者的帳號密碼存放文件
AuthzSVNAccessFile /Applications/redmine-1.2.2-0/subversion/svnaccess.pub # svn的存取規則
Require valid-user
- 利用指令 htpasswd -m /Applications/redmine-1.2.2-0/subversion/svnuser.auth username 來建立帳號、密碼
- 新增/Applications/redmine-1.2.2-0/subversion/svnaccess.pub 文件
- 寫入下面內容:
## 設定群組
[groups]
admin = admin1, admin2
g_code = user1,user2
g_doc = user3,user4
## 設定根目錄權限,r=讀、w=寫
[/]
* =
@admin = rw #admin群組可以讀寫全部
[proj1:/] # 版本目錄名稱
@g_code = rw #群組g_code可以讀寫
@g_doc=r #群組g_doc只能讀
[proj2:/]
user3=rw #使用者user3可以讀寫
user4=r #使用這user4可以讀
- 寫入下面內容:
備註:
- 使用者的帳號密碼與/Applications/redmine-1.2.2-0/subversion/svnuser.auth 是關聯的。
- svnaccess.pub 的規則變更是不用重啟apache就可以套用的。
沒有留言:
張貼留言