專案

一般

個人檔案

動作

安裝 Redmine

這是 Redmine 4.0 及更高版本的安裝文件。您仍然可以閱讀舊版本的說明文件: 3.x1.4.x - 2.6.x1.3.x

需求

作業系統

只要 Ruby 在平台上可用,Redmine 應該可以在大多數 Unix、Linux、macOSWindows 系統上執行。請參閱特定的安裝操作指南 此處

Ruby 直譯器和支援的資料庫

特定 Redmine 版本所需的 Ruby 版本和支援的資料庫後端如下:

Redmine 版本 支援的 Ruby 版本 使用的 Rails 版本 建議的資料庫
PostgreSQL MySQL MSSQL SQLite
trunk (>= r22488) Ruby 2.71、3.0、3.1、3.2 Rails 7.1 14 8.0 - 8.13 >2012 3
5.1 Ruby 2.71、3.0、3.1、3.2 Rails 6.1 >9.25 5.7 - 8.13 >2012 3
5.0 Ruby 2.51、2.61、2.71、3.0、3.1 Rails 6.1 >9.25 5.7 - 5.74 >2012 3
4.2 Ruby 2.41、2.51、2.61、2.72 Rails 5.2 >9.25 5.5 - 5.74 >2012 3

1 Ruby 社群已終止對 Ruby 2.7 及更早版本的支援。 有關詳細資訊,請參閱官方公告:2.42.52.62.7

2 Redmine 4.2 不支援 Ruby 2.7.0 和 2.7.1。請使用 Ruby 2.7.2 或更高版本(請參閱 #31500#note-13)。

3 Redmine >= 5.1.1 MySQL 需要將 transaction_isolation 變更為 READ COMMITTED 才能正常運作 MySQL_configuration

4 在 Redmine < 5.1.1 上,MySQL 5.6 或更高版本MariaDB 存在已知問題(#19344#19395#17460

5 需要 PostgreSQL 9.2 或更高版本。請確認您的資料庫日期樣式設定為 ISO(Postgresql 預設設定)。您可以使用以下指令設定:ALTER DATABASE "redmine_db" SET datestyle="ISO,MDY";

重要注意事項

  • Redmine 不支援 JRuby.
  • SQLite 3(不適用於多使用者生產環境!)

選用元件

  • SCM 二進制檔案(例如 svn),用於儲存庫瀏覽(必須在您的 PATH 中可用)。如需 SCM 相容性和需求,請參閱 RedmineRepositories
  • ImageMagick(用於啟用甘特圖匯出至 PNG 影像和縮圖產生)。
  • Ghostscript(用於在 Redmine 4.1 或更高版本中啟用 PDF 附件的縮圖產生)。
  • Sidekiq,建議用於生產環境的佇列後端系統。

Redmine 版本

建議大多數使用者安裝適當的 Redmine 發行版本。Redmine 目前每 6 個月發布一個新版本,這些版本都被認為非常實用且穩定。不建議從主幹安裝 Redmine,除非您非常熟悉 Ruby on Rails 並且隨時掌握變更 - 主幹確實會不時發生中斷。

安裝程序

步驟 1 - Redmine 應用程式

下載已發布的套件並將其解壓縮到系統上的適當目的地。
或者,可以直接從版本控制系統中取出檔案。

如需有關如何下載 Redmine 的詳細資訊,請造訪 下載頁面

步驟 2 - 建立空的資料庫和隨附的使用者

Redmine 資料庫使用者在後文中將稱為 redmine,但您可以將其更改為任何其他名稱。

MySQL

CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

對於 MySQL 5.5.2 或更早版本 - 請使用 utf8 取代 utf8mb4

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

對於 MySQL 5.0.2 或更早版本 - 請跳過「建立使用者」步驟,改為

CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'my_password';

PostgreSQL

CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

SQLite

請跳過此步驟。資料庫檔案將於步驟 6 建立。

SQL Server

您可以使用 SQL Server Management Studio 透過幾個點擊建立資料庫、登入帳戶和使用者。

如果您偏好使用 SQLCMD 命令列選項,以下是一些基本範例

顯示 SQL

步驟 3 - 資料庫連線設定

config/database.yml.example 複製到 config/database.yml,並編輯此檔案以設定「生產環境」的資料庫設定。對於 MySQL,請同時閱讀此指南 MySQL_configuration

MySQL 資料庫範例(預設端口)

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "my_password" 
  variables:
    transaction_isolation: "READ-COMMITTED" 

如果您的伺服器未在標準端口(3306)上執行,請改用此設定

production:
  adapter: mysql2
  database: redmine
  host: localhost
  port: 3307
  username: redmine
  password: "my_password" 
  variables:
    transaction_isolation: "READ-COMMITTED" 

PostgreSQL 資料庫範例(預設端口)

production:
  adapter: postgresql
  database: <your_database_name>
  host: <postgres_host>
  username: <postgres_user>
  password: "<postgres_user_password>" 
  encoding: utf8
  schema_search_path: <database_schema> (default - public)

SQLite 資料庫範例

production:
  adapter: sqlite3
  database: db/redmine.sqlite3

SQL Server 資料庫範例(預設主機 localhost,預設端口 1433

production:
  adapter: sqlserver
  database: redmine
  username: redmine # should match the database user name
  password: "redminepassword" # should match the login password

步驟 4 - 安裝依賴項

Redmine 使用 Bundler 來管理 gems 依賴項。

如果您使用 Ruby 2.5 或更早版本,則需要先安裝 Bundler

gem install bundler

然後,您可以使用以下命令安裝 Redmine 所需的所有 gems

bundle config set --local without 'development test' 
bundle install

可選依賴項

RMagick

RMagick 是 Ruby 程式語言與 ImageMagick 圖像處理庫之間的介面。在 4.1.0 之前的 Redmine 版本中,需要使用此庫將甘特圖匯出為 PNG 或 PDF。

如果您的系統上未安裝 ImageMagick(6.4.9 - 6.9.10),並且您正在安裝 Redmine 4.0 或更早版本,則應使用以下命令跳過 rmagick gem 的安裝

bundle config set --local without 'development test rmagick' 
bundle install

如果您在 Windows 上安裝 rmagick 時遇到問題,請參閱 此教學

資料庫適配器

Redmine 會透過讀取 config/database.yml 檔案自動安裝資料庫設定所需的適配器 gems(例如,如果您僅設定了使用 mysql2 適配器的連線,則只會安裝 mysql2 gem)。

config/database.yml 檔案中新增或移除適配器後,請勿忘記重新執行 bundle install --without development test ...

佇列適配器

Redmine 預設使用 ActiveJob::QueueAdapters::AsyncAdapter 作為佇列適配器,但不建議在生產環境中使用。建議的適配器是 Sidekiq,它使用 Redis 來實現持久化。設定指南:SidekiqConfiguration

其他依賴項 (Gemfile.local)

如果您需要載入 Redmine 核心不需要的 gems(例如 Puma、fcgi),請在您的 redmine 目錄的根目錄下建立一個名為 Gemfile.local 的檔案。它將在執行 bundle install 時自動載入。

範例

# Gemfile.local
gem 'puma'

步驟 5 - 會話儲存金鑰產生

此步驟會產生一個隨機金鑰,Rails 使用該金鑰來編碼儲存會話資料的 Cookie,從而防止它們被篡改。
產生新的金鑰會在重新啟動後使所有現有的會話失效。

bundle exec rake generate_secret_token

或者,您可以將此金鑰儲存在 config/secrets.yml 中
https://rails-guides.dev.org.tw/upgrading_ruby_on_rails.html#config-secrets-yml

步驟 6 - 資料庫結構物件建立

透過在應用程式根目錄下執行以下命令來建立資料庫結構

RAILS_ENV=production bundle exec rake db:migrate

Windows 語法

set RAILS_ENV=production
bundle exec rake db:migrate

它將透過逐一執行所有遷移來建立資料表,然後建立一組權限和名為 admin 的應用程式管理員帳戶。

步驟 7 - 資料庫預設資料集

透過執行以下命令將預設配置資料插入資料庫

RAILS_ENV=production bundle exec rake redmine:load_default_data

Redmine 會提示您要載入的資料集語言;您也可以在執行命令之前將 REDMINE_LANG 環境變數定義為一個值,該值將由任務自動且靜默地選取。

例如:

Unices

RAILS_ENV=production REDMINE_LANG=fr bundle exec rake redmine:load_default_data

Windows

set RAILS_ENV=production
set REDMINE_LANG=fr
bundle exec rake redmine:load_default_data

步驟 8 - 檔案系統權限

注意:*Windows 使用者可以跳過此部分。*

執行應用程式的使用者帳戶必須對以下子目錄具有寫入權限

  1. files(附件儲存位置)
  2. log(應用程式日誌檔案 production.log
  3. tmptmp/pdf(如果不存在則建立這些目錄,用於產生 PDF 文件等)
  4. public/plugin_assets(外掛的資產)

例如,假設您使用 redmine 使用者帳戶執行應用程式

mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R redmine:redmine files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets

注意:如果您在這些目錄中有檔案(例如從備份還原檔案),請確保這些檔案不可執行。

sudo find files log tmp public/plugin_assets -type f -exec chmod -x {} +

步驟 9 - 測試安裝

透過執行 Puma Web 伺服器來測試安裝

bundle exec rails server -e production

步驟 10 - 登入應用程式

使用預設管理員帳戶登入

  • 登入帳號:admin
  • 密碼:admin

您可以前往「管理」選單並選擇「設定」來修改大部分的應用程式設定。

配置

Redmine 設定定義在名為 config/configuration.yml 的檔案中。

如果您需要覆寫預設應用程式設定,只需將 config/configuration.yml.example 複製到 config/configuration.yml 並編輯新檔案;該檔案本身有詳細的註釋,因此您應該查看一下。

這些設定可以根據 Rails 環境(production/development/test)進行定義。

重要:請勿忘記在進行任何變更後重新啟動應用程式。

電子郵件 / SMTP 伺服器設定

電子郵件配置在專用頁面中說明。

SCM 設定

此配置區段允許您
  • 如果 PATH 變數中存在的 SCM 可執行檔未使用標準名稱,則覆寫預設命令名稱(Windows .bat/.cmd 名稱將無法使用)
  • 指定可執行檔的完整路徑

範例(使用 Subversion)

命令名稱覆寫

scm_subversion_command: "svn_replacement.exe"

絕對路徑

scm_subversion_command: "C:\Program Files\Subversion\bin\svn.exe"

附件儲存設定

您可以設定 Redmine 附件的儲存路徑,使其與 Redmine 執行個體的預設「files」目錄不同,方法是使用 attachments_storage_path 設定。

範例

attachments_storage_path: /var/redmine/files
attachments_storage_path: D:/redmine/files

記錄設定

Redmine 預設的日誌級別為 :info,並寫入 log 子目錄。根據網站使用情況,這可能會產生大量資料,因此為了避免日誌檔案內容無限制地增長,請考慮將其輪替,方法是透過系統工具(如 logrotate)或 config/additional_environment.rb 檔案。

若要使用後者,請將 config/additional_environment.rb.example 複製到 config/additional_environment.rb 並新增以下幾行。請注意,新的記錄器預設為高日誌級別,因此必須明確設定為 info

#Logger.new(PATH,NUM_FILES_TO_ROTATE,FILE_SIZE)
config.logger = Logger.new('/path/to/logfile.log', 2, 1000000)
config.logger.level = Logger::INFO

備份

Redmine 備份應包含
  • 資料(儲存在您的 Redmine 資料庫中)
  • 附件(儲存在 Redmine 安裝目錄的 files 目錄中)

如需更多詳細資訊,請參閱備份和還原 Redmine

Linux/Unix 安裝注意事項

如果遇到奇怪的權限問題,請務必在安裝過程中停用安全性強化工具。這些問題大多是無聲的,並且可能是由擴充 ACL、SELinux 或 AppArmor 等工具造成的。這些工具主要用於具有嚴格安全策略的大公司,預設的 Linux/Unix 發行版設定應該不會有問題。

Windows 安裝注意事項

您可以從 https://rubyinstaller.dev.org.tw 取得 Ruby MRI 的預先建置安裝程式。
安裝後,在開始選單中選擇「以 Ruby 啟動命令提示字元」。

指定 RAILS_ENV 環境變數

執行本指南中所述的指令時,您必須使用個別指令設定 RAILS_ENV 環境變數。

也就是說,具有以下語法的指令

RAILS_ENV=production <any commmand>
<any commmand> RAILS_ENV=production

必須轉換為 2 個後續指令

set RAILS_ENV=production
<any commmand>

MySQL gem 安裝問題

您可能需要使用以下指令手動安裝 mysql gem

gem install mysql

在某些情況下,需要將 ruby/bin 目錄中的 libmysql.dll 檔案複製到您的目錄中。
並非所有 libmysql.dll 都可以,這個似乎可以 http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

Win7 及更高版本的注意事項
在 Win7 及更高版本中,localhost 在 hosts 檔案5 中被註解掉,而 IPV6 是預設值6。由於 mysql2 gem 不支援 IPV6 位址7,因此無法建立連線,並且您會收到錯誤訊息「無法連線到 'localhost' 上的 MySQL 伺服器 (10061)」。
您可以透過 ping localhost 來確認這一點,如果 ping 目標為「::1:」,則表示正在使用 IPV6。

解決方法
在 database.yml 中將 localhost 替換為 127.0.0.1

5 http://serverfault.com/questions/4689/windows-7-localhost-name-resolution-is-handled-within-dns-itself-why

6 http://www.victor-ratajczyk.com/post/2012/02/25/mysql-fails-to-resolve-localhost-disable-ipv6-on-windows.aspx

7 https://github.com/brianmario/mysql2/issues/279

手動安裝的替代方案

有些使用者可能會希望使用下載頁面上的第三方 Redmine 套件來略過手動安裝。

Marius BĂLTEANU6 個月前 更新 · 345 個版本 已鎖定