项目

常规

个人资料

操作

安装Redmine

这是Redmine 4.0及以上版本的安装文档。您仍然可以阅读旧版本的文档:3.x1.4.x - 2.6.x1.3.x

要求

操作系统

只要该平台上可用Ruby,Redmine就应该能在大多数Unix、Linux、macOSWindows系统上运行。请参阅具体的安装HowTos这里

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 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.1MySQL 需要将 transaction_isolation 设置为 READ COMMITTED 以正确工作 MySQL_configuration

4 在 Redmine < 5.1.1MySQL 5.6 或更高版本MariaDB 存在已知问题(#19344#19395#17460)。

5 需要 PostgreSQL 9.2 或更高版本。请确保您的数据库 datestyle 设置为 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 个月发布一个新版本,这些版本被认为非常可用且稳定。**不建议**从 trunk 安装 redmine,除非您非常熟悉 Ruby on Rails 并紧跟变化 - Trunk **有时**会中断。

安装步骤

步骤 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 USER' 步骤,而是

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图像处理库之间的接口。在Redmine 4.1.0之前,该库是必要的,以便将甘特图导出为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时遇到问题,请参阅这篇HowTo

数据库适配器

Redmine将自动安装数据库配置中所需的适配器gem,通过读取config/database.yml文件来实现(例如,如果您仅配置了使用mysql2适配器的连接,则仅安装mysql2 gem)。

不要忘记在添加或删除适配器后重新运行bundle install --without development test ...

队列适配器

Redmine使用默认队列适配器ActiveJob::QueueAdapters::AsyncAdapter,它不建议在生产环境中使用。建议的适配器是使用Redis进行持久化的Sidekiq。配置指南:SidekiqConfiguration

附加依赖项(Gemfile.local

如果您需要加载Redmine核心不需要的gem(例如Puma、fcgi),请在redmine目录的根目录下创建一个名为Gemfile.local的文件。当运行bundle install时,它将自动加载。

示例

# Gemfile.local
gem 'puma'

第5步 - 会话存储密钥生成

此步骤生成一个随机密钥,Rails使用该密钥对存储会话数据的cookie进行编码,从而防止其被篡改。
生成新的密钥令牌将使重启后所有现有会话无效。

bundle exec rake generate_secret_token

或者,您可以将此密钥存储在config/secrets.yml中
https://guides.rubyonrails.net.cn/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环境变量,任务将自动且静默地选择该值。

例如:

Unix系统

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附件存储在不同于Redmine实例默认'files'目录的路径上。

示例

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安装的说明

如果在安装过程中遇到奇怪的权限问题,请确保在安装过程中禁用安全强化工具。这些问题通常是无声的,可能由扩展ACLs、SELinux或AppArmor等工具引起。这些工具通常用于具有严格安全政策的大型公司,默认的Linux/Unix发行版设置不应有问题。

关于Windows安装的说明

可以从https://rubyinstaller.ruby-lang.org.cn 获取预构建的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宝石安装问题

您可能需要手动使用以下命令安装mysql宝石

gem install mysql

在某些情况下,需要将libmysql.dll文件复制到您的ruby/bin目录中。
并非所有libmysql.dll都适用,似乎这个可以工作 http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

Win7及以后版本的重要说明
在Win7及以后版本中,hosts文件中的localhost被注释掉5,默认启用IPV66。由于mysql2宝石不支持IPV6地址7,无法建立连接,您将收到错误 "无法连接到MySQL服务器'localhost' (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ĂLTEANU更新 6个月前 · 345次修订 锁定