將 Redmine 安裝於 Debian、Ubuntu Linux

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 安裝

  1. apt-get install redmine redmine-sqlite git-core subversion libapache2-mod-fcgid libapache2-mod-passenger # redmine-mysql, redmine-pgsql 隨個人選擇
  2. 安裝詢問, 挑選 sqlite # 若 MySQL 或 PostgreSQL 會需要另外設定帳號、密碼
  3. cp /usr/share/doc/redmine/examples/apache2-host.conf /etc/apache2/sites-enabled/redmine.conf # 其他設定檔範例: /usr/share/doc/redmine/examples/, ex: lighttpd, nginx 範例皆於此處
  4. vim /etc/apache2/sites-enabled/redmine.conf # 在 VirtualHost 內, 修改 8080 => 80

    <VirtualHost *:8080>
    改成
    <VirtualHost *:80>

  5. 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

  6. /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>

  7. sudo a2enmod fcgid # 啟用 FastCGI
  8. sudo a2enmod rewrite
  9. sudo /etc/init.d/apache2 restart
  10. 在此就完成系統設定, 再來除了 Email 外, 都於 Web 介面設定即可. (到此已經可以連線 http://redmine.example.com)

Web 介面 - 設定帳號

  1. 點選頁面右上角的 "登入" (帳號: admin, 密碼: admin)
  2. 點選右上角 "我的帳戶" (挑選語系: Traditional Chinese 繁體中文, 並設定 Email 等資料, 此區塊 右上角 "變更密碼" 去 修改密碼)
  3. 點選右上角 "admin", 點選 此區塊 右上角 的 "編輯" (可以修改 帳號 admin -> tsung)

Web 介面 - 新增專案

  1. 點選左上角 "專案清單"
  2. 點選 此區塊 右上角 "建立新專案" -> 內容填寫完 "儲存" 即可完成.

Web 介面 - 設定專案 與 Git 整合

  1. 點選左上角 "專案清單", 點選進入專案
  2. 於 Tab 點選 "設定"
  3. 於 設定的 Tab 點選 "版本控管" -> 挑選 Git, 路徑設定 /var/cache/git/project.git # 請依照自己的 Git 路徑設定
  4. 於 Tab 點選 "認證"

Web 介面 - 開啟帳號

  1. 若 Redmine 只允許內部使用, 作法如下:
  2. 點選左上角 "專案清單", 點選進入專案
    • 於 Tab 點選 "認證" -> 註冊選項 選擇: 手動啟用帳戶
  3. 請要使用此系統的人去註冊帳號
  4. 點選左上角 "網站管理", 點選進入專案
    • Menu 點選 "用戶清單" -> 左邊 "篩選條件" 下拉挑選 "註冊完成", 在分別點選 "啟用" 即可.

Web 介面 - 角色與權限

  1. 點選左上角 "專案清單", 點選進入專案
    • Menu 點選 "角色與權限" -> 可由此去 新增 / 修改設定 角色的權限
  2. 註: 每個人在每個專案都可以分派不同得 "角色", 所以, 每個專案都要記得去新增加入此專案的"人員" 與 "角色"

Web 介面 - 指派專案人員

  1. 點選左上角 "專案清單", 點選進入專案
    • 於 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 權限不足
問題5:出現 500 error
  1. apt-get install bundler libapache2-mod-passenger
  2. cd /usr/share/redmine
  3. bundle update;
  4. 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;
  5. vi /etc/apache2/mods-available/passenger.conf # 加入
    PassengerDefaultUser www-data

Redmine 外掛

Redmine DB 備份

相關網頁

作者: Tsung

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

在〈將 Redmine 安裝於 Debian、Ubuntu Linux〉中有 13 則留言

  1. HI您好
    我想請問一下,我在redmine 1.2.1中設定Git做為檔案管理
    並透過Github來sync各個開發者的code
    但,我透過主機做git pull [email protected]:xxx/xxx.git master
    我發現在主機上檔案的確都已經被更新成最新的code
    但我透過redmine看
    所以的code卻還是第一次clone的code
    我也試著將apache重開,但還是沒有用,不曉得您知道該如何更新嗎?
    謝謝

    1. 你的 redmine 讀取的 source code 應該跟你指定的地方不一樣.
      redmine 每次都會去讀取 Git repository, 所以一定會是最新的, 應該是跟你想像的目錄位置不同所導致的問題?

  2. HI Tsung:
    目前又有遇到一點問題,想請問一下
    或者你能給我一個查詢的方向

    我目前已經設定好版本控管
    因此我在發表一個bug的時候
    我希望close bug的人
    一定要填入他改過code並commit的版號
    並且點選這個版號後,就能夠直接到版本控管的頁面去看到這個版號修改過哪些程式
    不曉得您知道該怎麼做嗎?
    我目前只有發現,在回覆中打
    commit:XXX 會跳到版本控管,並出現這個版號下的全部修改過的檔案
    source:some/file 跳到指定的程式
    但我好像沒有辦法用Tag來做到這件事情
    而且也沒有辦法限定只有在close的時候才會為必填...

    不好意思打擾您了,如果您知道該怎麼做
    或者是有什麼套件可以幫助我做到這件事情
    麻煩你指引我了
    謝謝

  3. Dear Tsung:

    我目前去看了一下Auto close resloved issue plugin
    他好像是將狀態為relsoved的issue在七天後自動修改狀態為close
    好像跟我的需求不太一樣
    且我在安裝後,也沒有看到其功能...
    然後我看了一下其他的plugin,好像也沒有看到我需要的功能
    目前看來只能朝向自己寫plugin或修改code
    謝謝

  4. 事實上我在安裝的時候,我的redmine是用1.0.5的版本
    你所推薦的plugin只有支援到0.9.x
    所以我根據他的安裝說明去操作
    go to admin -> issue_statuses
    在這邊,我的網頁無法打開
    show出Internal error
    也不知道有沒有辦法修正

  5. 請問SVN的檔案數量太大的時候
    會導製redmine開啟reposity的頁面慢到吐血....
    例如放入一整個Android source code....

    像這樣的問題
    網路上是說關閉自動更新SVN資料然後透過排成或SVN HOOK可以解決
    可是實際上我跑起來還是慢到哭...

    不知道Tsung大有沒有甚麼建議

    1. 試試看改用 git?
      話說 Redmine 本來就很慢, 建議用比較好的機器跑 (特別是很久沒跑, 他需要暖機(cache)).

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料