「Redmine」- 安装

  CREATED BY JENKINSBOT

Requirements

# Operating system:
任何安装Ruby环境的机器皆可。

!!我们使用CentOS 7.4服务器。

# Ruby interpreter:
安装Ruby环境。依照文档「Ruby interpreter」要求安装。

!!我们采用RVM安装Ruby 2.6环境。

# Supported database back-ends:
选用MySQL数据库。

!!直接从Yum源中安装MySQL 5.6版本。

# Optional components
可选组件需要安装一些额外的包。比如,SCM,ImageMagick等等。

Redmine Version

!!安装Ruby 2.6环境就是为了选用Redmine 4.0.4版本。

下载:wget https://www.redmine.org/releases/redmine-4.0.4.tar.gz

Installation procedure

#0 注意事项

(1)在Linux中的ACL、SELINUX在导致在安装过程中出现一些问题。

(2)如果不想手动安装,则可以考虑使用第三方的包:「Third-party Redmine bundles

#1 下载并解压(跳过)

将Redmine解压到/usr/local/redmine/中。

#2 创建数据库用户

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

#3 修改数据库配置

复制配置文件:cp config/database.yml.example config/database.yml

修改配置文件:vim config/database.yml

#4 依赖安装

#!/bin/sh

# Redmine使用bundler管理依赖
gem install bundler

# 安装相关依赖(但是你需要先修改一下源)
bundle config mirror.https://rubygems.org https://gems.ruby-china.com
bundle install --without "development" "test" # 如果不修改源,则会卡住不动

# 在执行「bundle install --without "development" "test"」时遇到了一些错误。
# 根据提示处理即可。在我的情景中,需要安装以下依赖:
yum install -y ImageMagick ImageMagick-devel.x86_64
gem install rmagick -v '2.16.0'
# 或者跳过:bundle install --without development test rmagick

# 如果修改了数据库的适配器(驱动),需要中心执行:bundle install --without development test

#5 生成随机的密钥,防止Session篡改

执行命令:bundle exec rake generate_secret_token

#6 创建数据库结构及相关的数据

执行命令:RAILS_ENV=production bundle exec rake db:migrate

#7 导入默认的配置数据

执行命令:RAILS_ENV=production bundle exec rake redmine:load_default_data

#8 修改文件系统权限

运行Redmine的用户要具有对以下目录的写入权限:

	files (storage of attachments)
	log (application log file production.log)
	tmp and tmp/pdf (create these ones if not present, used to generate PDF documents among other things)
	public/plugin_assets (assets of plugins)

执行如下命令:

#!/bin/sh

mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

# 并保证这些目录下的文件没有执行权限
# 例如,取消权限:find files log tmp public/plugin_assets -type f -exec chmod -x {} +

#9 测试安装

执行命令:bundle exec rails server webrick -e production

浏览器访问:http://your-ip-address:3000

!!正如文档所述,Webrick不适用与生产环境。应该考虑使用Passenger (aka mod_rails), FCGI or a Rack server (Unicorn, Thin, Puma, hellip;)等等。

#10 登录系统

默认的用户名密码是:admin/admin

Configuration

配置这里就先不展开,可以参考官方「Configuration」文档。

设置邮件;设置SCM程序;设置附件存储;

日志配置(略)

数据备份(略)

错误列表

# Error: Specified key was too long; max key length is 767 bytes

#1071 – Specified key was too long; max key length is 767 bytes
13.1.15 CREATE INDEX Syntax

问题描述:
数据库是MySQL 5.6版本。创建数据库及表(RAILS_ENV=production bundle exec rake db:migrate)时,产生了该错误。

问题原因:
这里讨论的是MySQL 5.6版本。

对于字符串类型的列,索引只能使用列值的开始部分,使用col_name(length)语法指定前缀长度。非二进制字符串类型,按字符个数计算。二进制字符串类型,按照字节数计算。

另外,支持的前缀长度与存储引擎也有关系。如果是InnoDB表,则可以达到767字节,如果使用了innodb_large_prefix选项可以达到3072字节。

由于我没有启用innodb_large_prefix选项,并且使用了utf8mb4编码,所以对于VARCHAR类型的最大索引长度为767 / 4 = 191个字符。而字段是VARCHAR(255)类型,创建索引的时候又未指定col_name(length)属性(默认(未指定)应该是索引了使用整个字段长度:255)

解决办法:
修改数据库的编码:ALTER DATABASE redmine CHARACTER SET utf8 COLLATE utf8_general_ci;

参考文献

Redmine/Installing Redmine
RubyGems – Ruby China