安装Redmine¶
这是Redmine 4.0及以上版本的安装文档。您仍然可以阅读旧版本的文档:3.x,1.4.x - 2.6.x,1.3.x
要求¶
操作系统¶
只要该平台上可用Ruby,Redmine就应该能在大多数Unix、Linux、macOS和Windows系统上运行。请参阅具体的安装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.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 或更高版本。请确保您的数据库 datestyle 设置为 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 个月发布一个新版本,这些版本被认为非常可用且稳定。**不建议**从 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
的命令行选项,以下是一些基本示例
第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用户可以跳过此部分。
运行应用程序的用户账户必须对以下子目录有写权限
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网络服务器测试安装
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
。
7 https://github.com/brianmario/mysql2/issues/279
手动安装的替代方法¶
一些用户可能更喜欢通过下载页面上的第三方Redmine捆绑包之一来跳过手动安装。
由Marius BĂLTEANU更新 6个月前 · 345次修订 锁定