项目

常规

个人资料

操作

安装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 2.7及以下版本的支持已被Ruby社区终止。请查看官方公告以获取详细信息: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 配置

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会自动安装从config/database.yml文件中读取的数据库配置所需的适配器gem(例如,如果您只配置了使用mysql2适配器的连接,则只安装mysql2 gem)。

不要忘记在config/database.yml文件中添加或删除适配器后重新运行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设置

此配置部分允许您
  • 如果SCM二进制文件在PATH变量中不存在且不使用标准名称(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

必须转换为两个连续的命令

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及以后版本中,hosts文件中注释了localhost5,默认使用IPV66。由于mysql2 gem不支持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次修订 锁定