Linux 下安装 Redmine

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Redmine 是一款非常流行的项目管理工具,使用 Ruby on Rails 编写,采用 GPL 许可协议(GNU General Public License v2)发布,支持多种操作系统。本文记录在 Ubuntu 16.04 下安装部署 Redmine 3.4.6 的过程,以及在 ECS 环境下的测试验证步骤。

Redmine 是一款非常流行的项目管理工具,使用 Ruby on Rails 编写,采用 GPL 许可协议(GNU General Public License v2)发布,支持多种操作系统。

部署和使用 Redmine 可以选择第三方提供的云服务,或者下载安装第三方 (如 Bitnami) 提供的安装包或容器。

相对于使用第三方提供的安装包,依据官方的安装部署文档,或者一些经过验证的安装辅助工具 (如 Redmine installer) 有以下优点:

  1. 在选择数据库、应用服务器和 Web 服务器时有更大的自由度
  2. 能与其它系统共用数据库 和 Web 服务器
  3. 在进行插件安装、迁移数据或版本更新时,会有更好的文档支持,也能少遇到一些不必要的麻烦

而且如同多数 Ruby on Rails 应用一样,Redmine 的安装部署过程非常简单,因此不用担心官方文档的安装步骤相对复杂,多数情况下这种安装方式更值得推荐。

本文记录基于官方的安装部署文档在 Ubuntu 16.04 下安装部署 Redmine 3.4.6 的过程。

硬件环境和操作系统

本次安装使用的硬件环境和操作系统如下:

更新操作系统并添加需要的软件包

执行以下指令可更新系统并安装需要的软件包,以及以后安装插件可能需要的软件包。在本文中,使用 MySQL, 如果选择其他数据库,需要替换相应的软件包:

apt-get update && apt-get -y upgrade
apt-get install -y build-essential git imagemagick libmagickwand-dev mysql-server libmysqlclient-dev

安装过程中,会提示设置 MySQL 的 root 密码。使用 ssh 远程登录云主机安装时,最好不要需要等待时间过长忽略安装过程。如果安装过程中因连接中断没有得到提示,MySQL 的 root 密码可能未设置密码,也可能需要从配置文件中查找。如果密码找不到,最简单的处理方法就是重新安装 MySQL。

创建 redmine 用户

创建专门的 redmine 用户不是必须的,但在正式环境中有助于维持系统的安全。

adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /data/redmine redmine

这里把 /data/redmine/ 作为 redmine 用户的工作目录。

安装 rvm 和 ruby

apt-get 安装的 ruby 和 ruby-dev 多数情况下也能使用,但因为文件权限和 ruby 版本选择的原因,推荐使用 rvm 安装 ruby。

不同的 Linux 分发版本下安装 rvm 的命令略有不同,可以详见 rvm 官网中的安装文档

此处简要列出 Ubuntu 下的安装命令

apt-get -y install software-properties-common
apt-add-repository -y ppa:rael-gc/rvm
apt-get update
apt-get install rvm

rvm 安装完成后安装可用版本的 ruby, 然后把 redmine 用户加入 rvm 组中,给 redmine 用户安装 gem 的权限。

rvm install 2.4
usermod -a -G rvm redmine

首次安装 rvm 后,如果找不到 rvm 命令,可按照安装 rvm 过程中的提示解决,一般退出当前的命令行再次登录就行。

首次安装 ruby 的过程中可能需要安装 libssl-dev 等软件包,需要 root 或 sudo 权限。后续安装过程不需要 root 或 sudo 权限,假定以 redmine 用户运行。

运行以下命令安装 Bundler:

su - redmine
gem install bundle

创建 redmine 数据库

创建一个空的数据库供 Redmine 使用,并创建一个数据库用户,授予该用户相应的数据库访问权限。

执行以下命令进入 MySQL 命令行环境,中间按照提示输入 MySQL 的 root 密码:

mysql -p -u root

在 MySQL 命令行环境下,执行以下命令创建 Redmine 使用的数据库和访问该数据库的用户并分配数据库权限:

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'p@ssw0rd';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

安装 Redmine

下载并解压 Redmine 源码

通过克隆 Redmine 源码库下载打包好的压缩文件,可获取 Redmine 源码:

wget http://www.redmine.org/releases/redmine-3.4.6.tar.gz
tar xvfz redmine-3.4.6.tar.gz
ln -s redmine-3.4.6 redmine
rm redmine-3.4.6.tar.gz

在以上的命令中,建立了一个软连接 ~/redmine 指向解压后的源码目录,以便于使用。

修改数据库连接配置

进入解压好的源码目录,复制数据库配置模版,并根据实际的数据配置修改生产环境下的数据库配置:

cd ~/redmine
cp -pR config/database.yml.example config/database.yml
vim config/database.yml

如果采用上文中的参数建立数据库,修改后的 config/database.yml 文件中,生产环境下的数据库配置为:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "p@ssw0rd"
  encoding: utf8

安装依赖的 gems

Redmine 使用 Bundler 管理 gems 依赖关系,Redmine 需要的 Gem 和依赖关系在 Gemfile 中。

如果需要加载额外的 gems, 比如在运行时使用 puma 代替默认的 webrick, 可在 Redmine 安装目录下建立一个名为 Gemfile.local 的文件,指定需额外加载的 gems, 再次运行 bundle install。

以下为 Gemfile.local 文件的示例:

# Gemfile.local
gem 'puma'

进入 Redmine 安装目录,运行以下命令安装之前已经安装过 Redmine 需要的 Gem:

cd ~/redmine
bundle install --without development test

生成 session 密钥

使用以下命令可生成新的 session 密钥:

bundle exec rake generate_secret_token

创建数据库结构

Ruby on Rails 应用,在新安装、软件升级等过程中可以很容易创建或更新数据库结构:

RAILS_ENV=production bundle exec rake db:migrate

导入初始数据

使用以下命令导入初始数据,包括默认的问题类型、工作流程等:

RAILS_ENV=production REDMINE_LANG=zh bundle exec rake redmine:load_default_data

上面的 REDMINE_LANG=zh 选项指定了使用中文,如果不加这个选项,该命令会提示输入语言代码。

设置文件系统权限

如果安装过程中的用户与运行时的用户不一致,则需要设置文件系统权限:

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

启动服务

执行以下命令可启动自带的应用服务,进行系统测试:

bundle exec rails server webrick -e production -b 0.0.0.0

如果在 Gemfile.local 文件中增加了 puma,还可选择启动 puma 代替 webrick:

bundle exec rails server puma -e production -b 0.0.0.0

当然在正式的生产环境中,应配置 nginx 或 apache2 服务,而不是通过命令行的方式启动服务。

登录 Redmine

在命令行中启动服务时,如果没有问题,会提示了访问地址和访问端口:

=> Booting Puma
=> Rails 4.2.8 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
Puma starting in single mode...
* Version 3.12.0 (ruby 2.3.1-p112), codename: Llamas in Pajamas
* Min threads: 0, max threads: 16
* Environment: production
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

在使用 ECS 时,需要注意默认的 3000 端口是不开放的,此时需要通过 ECS 控制台添加安全组规则,接受来自客户端 IP 地址段的 TCP 3000 端口访问请求。当然在命令行中也可以指定端口号,只需要保证用户有权限打开该端口号、该端口号未被其他服务占用,且能被云服务和 ECS 的操作系统接受即可。

使用 ECS 的公网 IP 地址在浏览器中输入正确的 URL, 即可登录新安装的 Redmine。假设公网 IP 地址为 39.105.106.107, 端口为 3000, 则 URL 应为 http://39.105.106.107:3000。

默认的登录名和密码都是 admin,首次登录时会提示更改密码。

如果一切正常,Redmine 就算安装完成了,可以用于开发或测试。

在正式生产环境中,还应配置应用服务器、Web 服务器和安全证书,进行数据库调优,以适合大量用户同时访问,具体内容可参见 Easy Redmine 的官方安装文档。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
21天前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
46 4
|
2月前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
115 5
Linux系统之安装OneNav个人书签管理器
|
2月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
61 5
Linux系统之安装Ward服务器监控工具
|
28天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
38 5
|
2月前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
39 2
Linux系统之安装cook菜谱工具
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
65 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
25天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
130 0
|
1月前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
43 0
|
2月前
|
Linux 网络安全 虚拟化
适用于Linux的Windows子系统(WSL1)的安装与使用记录
并放到启动文件夹,就可以开机自动启动了。
64 0