將 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

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Unix 並標籤為 , , , 。將永久鏈結加入書籤。

將 Redmine 安裝於 Debian、Ubuntu Linux 有 13 則回應

  1. Van 說道:

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

    • Tsung 說道:

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

  2. Van 說道:

    HI Tsung:
    看來的確是如此...我多了一層資料夾...
    謝謝

  3. Van 說道:

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

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

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

  4. Van 說道:

    Dear Tsung:

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

  5. Van 說道:

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

  6. Van 說道:

    我好像沒有找到他版本限制的地方...

  7. inse 說道:

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

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

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

發表迴響