Linux 下安装 Redmine

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 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官方安装文档

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
Ubuntu Linux 网络安全
Linux服务器上安装软件
Linux服务器上安装软件
27 2
|
6天前
|
Web App开发 监控 Linux
在Linux上,有许多软件可以下载和安装
在Linux上,有许多软件可以下载和安装
93 67
|
3天前
|
Linux Shell 异构计算
在linux上部署yolov5和安装miniconda3
这篇文章介绍了在Linux系统上部署YOLOv5并安装Miniconda3的步骤,包括使用wget命令下载Miniconda安装脚本、安装Miniconda、初始化Conda环境、添加镜像源等。
16 3
在linux上部署yolov5和安装miniconda3
|
5天前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
55 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
3天前
|
Linux 虚拟化
Vmware 傻瓜式安装(不可不知道的Linux基础知识和技术 01)
本文介绍了VMware虚拟机的下载与安装步骤。首先,通过提供的网盘链接下载VMware安装包。接着,详细描述了安装流程,包括接受协议、选择安装路径(建议避免系统C盘)、取消更新选项等。最后,输入许可证密钥完成安装,并展示了打开虚拟机后的主界面。整个过程简单易懂,适合新手操作。
46 1
|
5天前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
17 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
3天前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
3天前
|
网络协议 应用服务中间件 Linux
Linux安装nginx
Linux安装nginx
|
4天前
|
Ubuntu Linux 网络安全
如何在Ubuntu 22.04或20.04 Linux上安装MobaXterm
虽然直接在Ubuntu 22.04或20.04上安装MobaXterm是不可能的任务,因为它是专为Windows设计的,但Ubuntu系统提供了丰富的原生工具和替代方案,足以满足远程管理、文件传输等需求。如果你对MobaXterm的特定功能有强烈需求,考虑采用Windows子系统或虚拟机方案作为折衷方案,不失为一种可行之道。在追求高效工作流的同时,不妨也探索和熟悉Linux原生工具,它们往往能提供更为无缝的集成体验。
57 0
|
4天前
|
Linux 开发工具 Docker
各个类linux服务器安装docker教程
各个类linux服务器安装docker教程
25 0