專案

一般

個人檔案

動作

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

對於 5.5.2 或更低版本的 MySQL - 使用 utf8 而不是 utf8mb4

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

對於 5.0.2 或更低版本的 MySQL - 跳過「建立使用者」步驟,而是

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 管理 Gem 相依套件。

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

gem install bundler

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

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 檔案自動安裝資料庫設定所需的適配器 Gem(例如,如果您僅設定使用 mysql2 適配器的連線,則只會安裝 mysql2 Gem)。

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

佇列適配器

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

其他相依套件 (Gemfile.local)

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

範例

# Gemfile.local
gem 'puma'

步驟 5 - 產生 Session Store 金鑰

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

bundle exec rake generate_secret_token

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

步驟 6 - 建立資料庫 Schema 物件

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

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 網頁伺服器來測試安裝

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"

附件儲存設定

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

範例

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

在某些情況下,需要將 libmysql.dll 文件複製到您的 ruby/bin 目錄中。
並非所有 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 個版本 已鎖定