Linux 下安装 Redmine

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 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 的官方安装文档。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
1月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
142 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
1月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
224 0
|
3月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
200 5
|
3月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
3月前
|
Ubuntu 安全 Linux
Linux这5款微型发行版,体积小+精简,比win7运行还快,值得安装
以上5款微型发行版体积小且精简,如果你有台旧电脑,不妨试试?
|
3月前
|
安全 Ubuntu Linux
如何安装Linux操作系统?
此时,您可以选择重新启动计算机,然后从硬盘上的Linux系统启动。以上是一个大致的安装过程。请注意,不同的Linux发行版可能会在细节上有所差异,因此在进行安装之前,请确保您阅读并理解了相应发行版的安装指南或文档。
|
3月前
|
Ubuntu Linux 数据安全/隐私保护
Win10安装Linux子系统教程!如何在Win10系统中安装Ubuntu!
登录系统后,输入cd /返回上一级,然后再输入“ls”查看一下系统文件目录,看看对不对!
|
3月前
|
Ubuntu Linux Shell
手把手教你安装适用于Linux的Windows子系统——Ubuntu
重启完成,你看看重新打开Ubuntu是不是发生了变化,等待几分钟,系统配置完成,根据提示设置用户名和密码即可