Redmine 的簡介可見此篇: Redmine 基本功能介紹
此篇寫得包含 Redmine 於 Debian / Ubuntu Linux 的安裝、設定, 與 Git / SVN 等整合的設定 等.
註: 下述 Redmine 儲存的資料庫是挑選 SQLite, 若要使用 MySQL 或 PostgreSQL 會於註解地方標示, 在自行安裝即可.
系統環境
- Debian wheezy / Ubuntu 10.10
- Apache2
- SQLite
下述路徑皆為 Debian / Ubuntu Linux 預設路徑
Redmine 常用設定檔 與 資料庫存放位置
- Web 路徑: /usr/share/redmine/public/
- DB 設定檔: /etc/redmine/default/database.yml
- SQLite DB 檔案位置: /var/lib/dbconfig-common/sqlite3/redmine/instances/default/redmine_default (資料庫存放位置)
- Redmine 自己本身的 Log (Redmine path: /usr/share/redmine/):/usr/share/redmine/log/production.log
Redmine 相關設定檔
- /etc/dbconfig-common/redmine/instances/default.conf
- /etc/redmine/default/database.yml
- /etc/redmine/default/session.yml
- /etc/javascript-common/javascript-common.conf
Redmine 相關檔案位置 (Debian / Ubuntu 環境)
- /etc/redmine
- /usr/share/doc/redmine/examples/
- /var/cache/redmine
- /var/log/redmine
- /var/lib/redmine
Redmine 安裝
- apt-get install redmine redmine-sqlite git-core subversion libapache2-mod-fcgid libapache2-mod-passenger # redmine-mysql, redmine-pgsql 隨個人選擇
- 安裝詢問, 挑選 sqlite # 若 MySQL 或 PostgreSQL 會需要另外設定帳號、密碼
- cp /usr/share/doc/redmine/examples/apache2-host.conf /etc/apache2/sites-enabled/redmine.conf # 其他設定檔範例: /usr/share/doc/redmine/examples/, ex: lighttpd, nginx 範例皆於此處
- vim /etc/apache2/sites-enabled/redmine.conf # 在 VirtualHost 內, 修改 8080 => 80
<VirtualHost *:8080>
改成
<VirtualHost *:80> - vim /etc/apache2/sites-enabled/redmine.conf # 在 VirtualHost 內, 增加下述
ServerName example.com # 你的 redmine hostname
CustomLog /var/log/apache2/redmine-access.log combined
ErrorLog /var/log/apache2/redmine-error.log - /etc/apache2/sites-enabled/redmine.conf # 完整檔案如下:
<VirtualHost *:80>
# FcgidInitialEnv for module mod_fcgid
FcgidInitialEnv RAILS_RELATIVE_URL_ROOT ""
FcgidInitialEnv X_DEBIAN_SITEID "default"ServerName redmine.example.com
CustomLog /var/log/apache2/redmine-access.log combined
ErrorLog /var/log/apache2/redmine-error.log# the mod_fcgid socket path # Ubuntu 會多此行, 註解掉即可
#SocketPath "/var/run/redmine/sockets/default" # Ubuntu 會多此行, 註解掉即可
Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/
DocumentRoot /usr/share/redmine/public
<Directory "/usr/share/redmine/public">
Options +FollowSymLinks +ExecCGI
Order allow,deny
Allow from all
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
</Directory>
</VirtualHost> - sudo a2enmod fcgid # 啟用 FastCGI
- sudo a2enmod rewrite
- sudo /etc/init.d/apache2 restart
- 在此就完成系統設定, 再來除了 Email 外, 都於 Web 介面設定即可. (到此已經可以連線 http://redmine.example.com)
Web 介面 - 設定帳號
- 點選頁面右上角的 "登入" (帳號: admin, 密碼: admin)
- 點選右上角 "我的帳戶" (挑選語系: Traditional Chinese 繁體中文, 並設定 Email 等資料, 此區塊 右上角 "變更密碼" 去 修改密碼)
- 點選右上角 "admin", 點選 此區塊 右上角 的 "編輯" (可以修改 帳號 admin -> tsung)
Web 介面 - 新增專案
- 點選左上角 "專案清單"
- 點選 此區塊 右上角 "建立新專案" -> 內容填寫完 "儲存" 即可完成.
Web 介面 - 設定專案 與 Git 整合
- 點選左上角 "專案清單", 點選進入專案
- 於 Tab 點選 "設定"
- 於 設定的 Tab 點選 "版本控管" -> 挑選 Git, 路徑設定 /var/cache/git/project.git # 請依照自己的 Git 路徑設定
- 於 Tab 點選 "認證"
Web 介面 - 開啟帳號
- 若 Redmine 只允許內部使用, 作法如下:
- 點選左上角 "專案清單", 點選進入專案
- 於 Tab 點選 "認證" -> 註冊選項 選擇: 手動啟用帳戶
- 請要使用此系統的人去註冊帳號
- 點選左上角 "網站管理", 點選進入專案
- Menu 點選 "用戶清單" -> 左邊 "篩選條件" 下拉挑選 "註冊完成", 在分別點選 "啟用" 即可.
Web 介面 - 角色與權限
- 點選左上角 "專案清單", 點選進入專案
- Menu 點選 "角色與權限" -> 可由此去 新增 / 修改設定 角色的權限
- 註: 每個人在每個專案都可以分派不同得 "角色", 所以, 每個專案都要記得去新增加入此專案的"人員" 與 "角色"
Web 介面 - 指派專案人員
- 點選左上角 "專案清單", 點選進入專案
- 於 Tab 點選 "設定" -> 於此區塊 Menu 點選 "成員" -> 於右邊勾選 "人員 / 帳號" 與 "角色" 在新增即可.
Redmine 錯誤排除
問題1: 出現下述錯誤:
- [Thu Mar 03 12:57:14 2011] [warn] [client 192.168.0.10] (104)Connection reset by peer: mod_fcgid: error reading data from [[FastCGI]] server
- [Thu Mar 03 12:57:14 2011] [error] [client 192.168.0.10] Premature end of script headers: dispatch.fcgi
解法:
- apt-get install libapache2-mod-passenger
- sudo a2enmod passenger
問題2: 若 Ubuntu Linux 出現權限不足的錯誤
解法:
- chmod 777 /var/lib/dbconfig-common/sqlite3/redmine/instances/default/
- chmod 666 /var/lib/dbconfig-common/sqlite3/redmine/instances/default/redmine_default
- chmod 644 /etc/redmine/default/*
問題3: 若 Redmine 上傳檔案, 出現權限不足 (/var/log/apache2/error.log)
解法
- chmod 777 /var/lib/redmine/default/files/ # 請依照使用者權限設定, 不知道就先 777 試試看.
問題4: 出現 Permission denied – /etc/redmine/default/session.yml 權限不足
- vi /etc/apache2/mods-available/passenger.conf # 增加下述
<IfModule mod_passenger.c>
# PassengerRoot /usr
# PassengerRuby /usr/bin/ruby
PassengerDefaultUser www-data
</IfModule> - 可參考: HowTo Install Redmine using Debian package - Redmine
問題5:出現 500 error
- apt-get install bundler libapache2-mod-passenger
- cd /usr/share/redmine
- bundle update;
- bundle exec rake db:migrate RAILS_ENV=production; \
> bundle exec rake redmine:plugins:migrate RAILS_ENV=production; \
> bundle exec rake tmp:cache:clear tmp:sessions:clear RAILS_ENV=production; - vi /etc/apache2/mods-available/passenger.conf # 加入
PassengerDefaultUser www-data
Redmine 外掛
- Redmine - ThirdPartyTools - 外掛 Plugin
- AdamLantos/redmine_http_auth - HTTP Auth
Redmine DB 備份
- Redmine DB 備份 (SQLite Dump backup)
- DB: sqlite3 /var/lib/dbconfig-common/sqlite3/redmine/instances/default/redmine_default .dump > ~/redmine.sql
- 附加檔案: /var/lib/redmine/default/files
- 設定檔: /etc/redmine/default/*
- Redmine - How to backup redmine?
- Redmine - Backing up Redmine
HI您好
我想請問一下,我在redmine 1.2.1中設定Git做為檔案管理
並透過Github來sync各個開發者的code
但,我透過主機做git pull [email protected]:xxx/xxx.git master
我發現在主機上檔案的確都已經被更新成最新的code
但我透過redmine看
所以的code卻還是第一次clone的code
我也試著將apache重開,但還是沒有用,不曉得您知道該如何更新嗎?
謝謝
你的 redmine 讀取的 source code 應該跟你指定的地方不一樣.
redmine 每次都會去讀取 Git repository, 所以一定會是最新的, 應該是跟你想像的目錄位置不同所導致的問題?
HI Tsung:
看來的確是如此...我多了一層資料夾...
謝謝
HI Tsung:
目前又有遇到一點問題,想請問一下
或者你能給我一個查詢的方向
我目前已經設定好版本控管
因此我在發表一個bug的時候
我希望close bug的人
一定要填入他改過code並commit的版號
並且點選這個版號後,就能夠直接到版本控管的頁面去看到這個版號修改過哪些程式
不曉得您知道該怎麼做嗎?
我目前只有發現,在回覆中打
commit:XXX 會跳到版本控管,並出現這個版號下的全部修改過的檔案
source:some/file 跳到指定的程式
但我好像沒有辦法用Tag來做到這件事情
而且也沒有辦法限定只有在close的時候才會為必填...
不好意思打擾您了,如果您知道該怎麼做
或者是有什麼套件可以幫助我做到這件事情
麻煩你指引我了
謝謝
http://www.redmine.org/projects/redmine/wiki/Plugin_List
這篇有 Redmine Plugin list, 你說的是很常見的, 看起來 Auto-close Resolved issues plugin 應該就合用了.
若還有其他進階得, 都可以於此處先找找~ 🙂
Dear Tsung:
我目前去看了一下Auto close resloved issue plugin
他好像是將狀態為relsoved的issue在七天後自動修改狀態為close
好像跟我的需求不太一樣
且我在安裝後,也沒有看到其功能...
然後我看了一下其他的plugin,好像也沒有看到我需要的功能
目前看來只能朝向自己寫plugin或修改code
謝謝
事實上我在安裝的時候,我的redmine是用1.0.5的版本
你所推薦的plugin只有支援到0.9.x
所以我根據他的安裝說明去操作
go to admin -> issue_statuses
在這邊,我的網頁無法打開
show出Internal error
也不知道有沒有辦法修正
我通常的作法是, 先把他 Plugin 版本限制的那段改掉, 試試看能不能動, 不行在另外想辦法. XD
我好像沒有找到他版本限制的地方...
如果沒有版本限制的地方, 應該就不會有只有限定在 0.9 版可以用唷~ 🙂
請問SVN的檔案數量太大的時候
會導製redmine開啟reposity的頁面慢到吐血....
例如放入一整個Android source code....
像這樣的問題
網路上是說關閉自動更新SVN資料然後透過排成或SVN HOOK可以解決
可是實際上我跑起來還是慢到哭...
不知道Tsung大有沒有甚麼建議
試試看改用 git?
話說 Redmine 本來就很慢, 建議用比較好的機器跑 (特別是很久沒跑, 他需要暖機(cache)).