如何在 Rocky Linux 上安装 Redmine
Redmine 是一个免费的开源项目管理和问题跟踪程序。它是一个基于Web的应用软件,主要用Ruby on Rails编写。它是跨平台的,支持多种数据库和语言。
Redmine 非常灵活,可用于不同类型的组织和项目,从小型到中型到大型组织。使用Redmine,您可以创建和管理多个项目,每个项目都有自己的wiki、论坛、问题跟踪等。您还可以创建适合您组织的需求等的自定义角色。
Redmine 在 GNU GPL v2 许可证下发布,可以安装在任何操作系统上,例如 Linux、Windows 或 macOS。它支持不同的数据库,包括 PostgreSQL、MySQL 和 SQLite(标准)。
Redmine的主要特点如下:
- 多项目支持
- 每个项目 Wiki 和论坛
- 文档和档案管理
- 新闻和提要以及电子邮件通知
- 时间跟踪
- 支持多种SCM(SVN、Git、CVS、Mercurial、Bazaar)
- 提供约 49 种语言支持
- 支持LDAP认证
- ETC
先决条件
在本指南中,您将学习如何使用 PostgreSQL 数据库和 Apache/httpd Web 服务器在 Rocky Linux 系统上部署 Redmine 项目管理和问题跟踪工具。
本例的环境如下:
- 操作系统:Rocky Linux 8.4(Green Obisidian)
- IP 地址:192.168.1.10
- root权限
- 域名: redmine.example.com
您将在本指南中学到的目标:
- 使用 RVM(Ruby 版本管理器)安装 Ruby
- 设置 PostgreSQL 数据库
- 安装乘客
- 为Redmine设置Apache/httpd虚拟主机(带或不带SSL)
- Redmine的安装和配置
在开始使用本指南之前,建议您在 Rocky Linux 系统上完成 PostgreSQL 安装。
如何在 Rocky Linux 上安装 PostgreSQL
安装依赖项
首先,您必须安装以下依赖项。 Redmine 安装需要以下所有软件包,并确保使用 sudo 或 root 权限执行以下所有命令。
1. 将 EPEL (Extra Packages for Enterprise Linux) 存储库添加到您的系统。
sudo dnf install epel-release -y
2. EPEL 安装完成后,使用下面的 DNF 命令安装软件包。
sudo dnf install curl gpg gnupg2 gcc gcc-c++ make patch autoconf automake bison ImageMagick libffi-devel libtool patch redhat-rpm-config readline-devel postgresql-devel zlib-devel openssl-devel -y
3. 接下来,通过执行如下 DNF 命令在 Rocky Linux 系统上安装 apache/httpd Web 服务器。
sudo dnf install libcurl-devel httpd-devel httpd apr-devel apr-util-devel -y
如果 httpd 软件包安装完成,请启动并启用 httpd 服务。
sudo systemctl enable --now httpd
现在验证 httpd 并确保它处于活动状态并正在运行。
sudo systemctl status httpd
Redmine 安装的基本包已安装,进入下一步安装 RVM 和 Ruby。
安装 RVM 和 Ruby
最新版本的Redmine 需要Ruby 2.7 版本才能安装。在此步骤中,您将使用 RVM 或 Ruby Version Manager 在 Rocky Linux 系统上安装 Ruby 版本 2.7。
因此,您将安装 RVM,然后安装 Ruby。
1. 首先,将rvm开发者的GPG密钥导入到您的系统中。
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
2. 现在安装rvm稳定版本并使用以下命令加载rvm环境。
curl -L get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
之后,再次重新加载 rvm 源并安装 rvm 的所有系统要求。
rvm reload
rvm requirements run
如果所有过程都已完成,您就可以安装 Ruby 了。
3. 执行下面的rvm命令在Rocky Linux系统上安装Ruby版本2.7。
rvm install 2.7
等待安装完成。
现在检查系统上可用的 Ruby 版本并检查系统上当前的 Ruby 版本。
rvm list
ruby --version
您将看到类似的输出,如下所示。
您的系统上只安装了一个 Ruby 版本,ruby 2.7.2。它当前正在您的系统上使用。
现在进入下一阶段,为 Redmine 安装设置 PostgreSQL 数据库。
设置 PostgreSQL 数据库
在继续之前,请确保您已完成 PostgreSQL 安装,如下所示。
如何在 Rocky Linux 上安装 PostgreSQL
之后,您将为 Redmine 创建一个新的 PostgreSQL 数据库和用户。
1. 使用以下命令登录 PostgreSQL shell。
sudo -u postgres psql
2. 使用以下查询创建新的 PostgreSQL 用户“redmine”和数据库“redminedb”。并确保使用强密码更改密码。
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'StrongPasswordRedmine' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redminedb WITH ENCODING='UTF8' OWNER=redmine;
输入“\q”并按“Enter”退出 PostgreSQL shell。
现在您已准备好在系统上安装 Redmine。
安装和配置Redmine
对于此步骤,您将安装 Redmine 版本 4.2.3,这是目前的最新版本。 Redmine 安装将位于“/var/www/redmine”。
1. 将当前工作目录更改为“/var/www”并下载Redmine 4.2.3源代码。
cd /var/www/
wget https://www.redmine.org/releases/redmine-4.2.3.tar.gz
现在提取Redmine源代码并将目录重命名为“redmine”。
tar -xzvf redmine-4.2.3.tar.gz
mv redmine-*/ redmine
2. 接下来,您将创建一个新的Redmine 数据库配置。
将您的工作目录更改为“/var/www/redmine” 目录。
export REDMINE=/var/www/redmine
cd $REDMINE
使用 Nano 编辑器创建新的数据库配置'config/database.yml'。
nano config/database.yml
将以下配置复制并粘贴到其中。并确保使用您的信息更改数据库名称、用户和密码。
production:
adapter: postgresql
database: redminedb
host: localhost
username: redmine
password: "StrongPasswordRedmine"
encoding: utf8
保存配置并退出。
3. 为Redmine 配置数据库后,您将安装一些ruby 依赖项。您必须在Redmine安装目录'/var/www/redmine'上运行以下命令。
首先,使用下面的 ruby gem 命令安装捆绑程序。
gem install bundler
现在执行下面的“bundle”命令来配置您的Redmine安装。
bundle config set --local path 'vendor/bundle'
bundle config set --local without 'development test'
现在使用下面的bundle命令为Redmine安装ruby包依赖项。
bundle install
根据您的互联网连接和机器/系统,该命令将需要一些时间。如果没有收到任何错误,请转到下一步。
4. 完成所有 ruby 依赖项的安装后,生成秘密令牌并使用以下命令迁移数据库。
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
5. 之后,将Redmine安装目录的所有权更改为用户“apache”。
sudo chown -R apache:apache $REDMINE
Redmine 安装和配置完成,进入下一步设置乘客和 httpd Web 服务器。
安装和配置 Passenger
Passenger 或 Phusion Passenger 是一个用 Ruby 编写的 Web 应用程序服务器。在生产环境中,它通常用作 Rails 应用程序的前端。对于本指南,您的 Redmine 将在乘客和 httpd Web 服务器后面运行。
Passenger 可以通过 RubyGem 存储库安装。它还可以与 Apache/httpd 和 Nginx Web 服务器集成来处理 Ruby 应用程序,包括 Rails。
1. 要在系统范围内安装乘客,请执行下面的 gem 命令
gem install passenger
2. Passenger安装完成后,执行以下命令安装Passenger Apache模块。
passenger-install-apache2-module
安装程序将描述您要执行的所有操作,并在阅读有关安装的所有要点后按“Enter”。
选择“Ruby”作为您的应用程序,然后按“Enter”继续。
现在安装程序会告诉您向 Apache/httpd 添加一些配置,如下面的屏幕截图所示。
打开新的终端 shell,连接到您的服务器,然后使用 Nano 编辑器创建新的 httpd 配置“/etc/httpd/conf.d/passenger.conf”。
nano /etc/httpd/conf.d/passenger.conf
粘贴显示屏幕的配置。以下是顶部屏幕截图中的配置。
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.7.2/gems/passenger-6.0.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-2.7.2/gems/passenger-6.0.12
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.7.2/wrappers/ruby
</IfModule>
保存配置并退出。
接下来,重新启动 httpd 服务以应用新配置。
sudo systemctl restart httpd
然后返回到上一个 shell,然后按“Enter”继续。
之后,安装程序将检查 apache 模块安装,并确保没有出现任何错误。
如果没有收到任何错误,您将看到类似的输出,如下所示。
Passenger 及其 Apache 2 模块的安装已完成。现在您已经准备好为 Redmine 设置 httpd 虚拟主机了。
为Redmine配置httpd
在此步骤中,您将为您的 Redmine 安装创建一个新的 httpd 虚拟主机配置。
1. 使用 Nano 编辑器创建新的虚拟主机配置“/etc/httpd/conf.d/redmine.conf”。
nano /etc/httpd/conf.d/redmine.conf
复制并粘贴以下配置,并确保将域名更改为您的域。
PassengerRuby /usr/local/rvm/gems/ruby-2.7.2/wrappers/ruby
<VirtualHost *:80>
ServerName redmine.example.io
DocumentRoot "/var/www/redmine/public"
ErrorLog logs/redmine_error_log
LogLevel warn
<Directory "/var/www/redmine/public">
Options Indexes ExecCGI FollowSymLinks
Require all granted
AllowOverride all
</Directory>
</VirtualHost>
保存配置并退出。
对于 HTTPS Redmine 配置,复制并粘贴以下配置。并确保使用您的详细信息更改域名和 SSL 路径。另外,不要忘记启用 Apache mod_ssl 模块以使 HTTPS 在您的系统上正常运行。
PassengerRuby /usr/local/rvm/gems/ruby-2.7.2/wrappers/ruby
<VirtualHost *:80>
ServerName redmine.example.io
Redirect permanent / https://redmine.example.io/
</VirtualHost>
<VirtualHost *:443>
ServerName redmine.example.io
Protocols h2 http/1.1
<If "%{HTTP_HOST} == 'www.redmine.example.io'">
Redirect permanent / https://redmine.example.io/
</If>
DocumentRoot "/var/www/redmine/public"
ErrorLog /var/log/httpd/redmine.example.io-error.log
CustomLog /var/log/httpd/redmine.example.io-access.log combined
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/redmine.example.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.example.io/privkey.pem
<Directory /var/www/redmine/public>
Options Indexes ExecCGI FollowSymLinks
Require all granted
AllowOverride all
</Directory>
</VirtualHost>
2. 接下来,验证httpd配置并确保没有错误。然后重新启动 httpd 服务以应用新的虚拟主机配置。
apachectl configtest
sudo systemctl restart httpd
现在您已准备好访问您的Redmine 安装。
验证Redmine安装
打开您的网络浏览器并在地址栏上输入您的Redmine安装的域名以及路径'/login'。
https://redmine.example.io/login
1. 在Redmine登录页面上,输入默认用户“admin”和密码“admin”,然后单击“登录”按钮。
2. 现在您必须重置默认管理员密码。
输入旧密码“admin”,然后输入新的强密码,然后单击“应用”。
3. 您将看到您的帐户详细信息。
使用您的详细信息编辑所有信息,或者仅将其保留为默认值,然后单击“保存”按钮。
4. 您将看到如下所示的Redmine管理页面。
首次安装时,您必须加载 Redmine 安装的默认语言。
选择您的语言并单击“加载默认配置”按钮。
5. 在左侧菜单中,单击“用户”菜单以查看您的Redmine 上的所有注册用户。
6. 现在移至“信息”菜单以查看 Redmine 安装的所有详细信息。
下面是您将得到的类似输出。
可以看到,Redmine安装完成。您刚刚在生产环境中安装了带有 Ruby 2.7 和 PostgreSQL 数据库的 Redmine 版本 4.2.3 稳定版。
结论
恭喜!您已经学习了如何在 Rocky Linux 系统上安装 Redmine 以及 PostgreSQL 数据库和 Apache/httpd Web 服务器。此外,您还了解了如何安装 Phusion Passenger 及其与 Apache Web 服务器的集成。
对于下一步,您可以向您的 Redmine 安装添加其他插件并添加 SMTP 服务器等。