安裝 Redmine¶
這是 Redmine 4.0 及更高版本的安裝文件。您仍然可以閱讀舊版本的說明文件: 3.x、1.4.x - 2.6.x、1.3.x
需求¶
作業系統¶
只要 Ruby 在平台上可用,Redmine 應該可以在大多數 Unix、Linux、macOS 和 Windows 系統上執行。請參閱特定的安裝操作指南 此處。
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.4、2.5、2.6、2.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.
- Microsoft SQL Server 2012 或更高版本
- 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
命令列選項,以下是一些基本範例
步驟 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 使用者可以跳過此部分。*
執行應用程式的使用者帳戶必須對以下子目錄具有寫入權限
files
(附件儲存位置)log
(應用程式日誌檔案production.log
)tmp
和tmp/pdf
(如果不存在則建立這些目錄,用於產生 PDF 文件等)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
。
7 https://github.com/brianmario/mysql2/issues/279
手動安裝的替代方案¶
有些使用者可能會希望使用下載頁面上的第三方 Redmine 套件來略過手動安裝。
由 Marius BĂLTEANU 於 6 個月前 更新 · 345 個版本 已鎖定