如何在 Debian 9 上安装和配置 Redmine

2023-11-11

Redmine 是一款免费的开源项目管理和问题跟踪应用程序。它是跨平台和跨数据库的,构建在 Ruby on Rails 框架之上。

Redmine包括对多个项目、wiki、问题跟踪系统、论坛、日历、电子邮件通知等的支持。

在本教程中,我们将向您展示如何使用 MySQL 作为数据库后端和 Passenger + Nginx 作为 Ruby 应用程序服务器在 Debian 9 服务器上安装和配置最新版本的 Redmine。

先决条件#

在继续本教程之前,请确保您已满足以下先决条件:

  • 有一个域名指向您的服务器公共IP。我们将使用example.com.
  • 登录身份为具有 sudo 权限的用户 .
  • Have 已安装 Nginx .
  • Have an 已安装 SSL 证书为您的域名。

创建 MySQL 数据库#

Redmine 支持 MySQL/MariaDB、Microsoft SQL Server、SQLite 3 和PostgreSQL。我们将使用 MariaDB 作为数据库后端。确保您的计算机上至少安装了 MySQL 5.7 或 MariaDB 10.3。

如果您的 Debian 服务器上未安装 MariaDB 或 MySQL,您可以使用以下命令安装它这些说明 .

首先登录 MySQL 控制台,输入:

sudo mysql

运行以下SQL语句即可创建一个新数据库 :

CREATE DATABASE redmine CHARACTER SET utf8mb4;

创建一个新的MySQL 用户帐户并授予对数据库的访问权限 :

GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
不要忘记改变change-with-strong-password使用强密码。

完成后,输入以下命令从 MariaDB 控制台注销:

EXIT;

安装红宝石#

在 Debian 上安装 Ruby 最简单的方法是使用apt包管理器:

通过键入以下内容安装 Ruby:

sudo apt install ruby-full

在撰写本文时,Debian 存储库中的版本是2.3.3p222最新版本的Redmine支持该功能。

如果您想通过 Rbenv 或 RVM 安装 Ruby,请访问本教程 .

安装 Passenger 和 Nginx#

乘客是一个用于 Ruby、Node.js 和 Python 的快速、轻量级 Web 应用程序服务器,可以与 Apache 和 Nginx 集成。我们将安装 Passenger 作为 Nginx 模块。

在继续以下步骤之前,请确保已安装 Nginx。

安装必要的软件包以启用 https 存储库:

sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common

导入存储库 GPG 密钥并启用菲森乘客存储库:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger stretch main'

更新软件包列表并安装 Passenger Nginx 模块:

sudo apt updatesudo apt install libnginx-mod-http-passenger

在 Debian 上安装 Redmine#

首先安装构建 Redmine 所需的依赖项:

sudo apt install build-essential libmariadbclient-dev imagemagick libmagickwand-dev curl ruby-dev libxslt-dev libxml2-dev zlib1g-dev

在撰写本文时,Redmine 的最新稳定版本是 4.0.4 版本。

在继续下一步之前,您应该检查Redmine下载页面以获得更新版本。

1.下载Redmine#

使用以下命令下载Redmine存档卷曲命令 :

sudo curl -L http://www.redmine.org/releases/redmine-4.0.4.tar.gz -o /tmp/redmine.tar.gz

下载完成后解压存档并move它到/opt目录:

cd /tmpsudo tar zxf /tmp/redmine.tar.gzsudo mv /tmp/redmine-4.0.4 /opt/redmine

2.配置Redmine数据库#

CopyRedmine示例配置文件:

sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml

使用文本编辑器打开文件:

sudo nano /opt/redmine/config/database.yml

搜索production部分并输入我们之前创建的MySQL数据库和用户信息:

/opt/redmine/config/database.yml
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "change-with-strong-password"
  encoding: utf8

完成后,保存文件并退出编辑器。

3.安装Ruby依赖项#

Navigate到 redmine 目录并安装捆绑器和其他 Ruby 依赖项:

cd /opt/redmine/sudo gem install bundler --no-rdoc --no-ri sudo bundle install --without development test postgresql sqlite

4. 生成密钥并迁移数据库#

运行以下命令生成密钥并迁移数据库:

cd /opt/redmine/sudo bundle exec rake generate_secret_tokensudo RAILS_ENV=production bundle exec rake db:migrate

5. 设置正确的权限#

Nginx 运行为www-data用户和组。通过发出以下命令设置正确的权限chown命令 :

sudo chown -R www-data: /opt/redmine/

配置 Nginx#

到目前为止,您的系统上应该已经安装了带有 SSL 证书的 Nginx,如果还没有,请检查本教程的先决条件。

打开文本编辑器并创建以下内容Nginx 服务器块 file:

sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
# Redirect HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# Redirect WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /opt/redmine/public;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    passenger_enabled on;
    passenger_min_instances 1;
    client_max_body_size 10m;
}
不要忘记将 example.com 替换为您的 Redmine 域,并设置 SSL 证书文件的正确路径。一切HTTP 请求将被重定向到 HTTPS。此配置中使用的片段是在以下位置创建的本指南 .

通过创建指向的符号链接来启用服务器块sites-enabled目录:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

在重新启动 Nginx 服务之前进行测试以确保没有语法错误:

sudo nginx -t

如果没有错误,输出应如下所示:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,重启 Nginx 服务通过输入:

sudo systemctl restart nginx

访问Redmine#

Open 你的浏览器,输入您的域名并假设安装成功,将出现类似于以下内容的屏幕:

Redmine 的默认登录凭据是:

  • 用户名: 管理员
  • 密码: 管理员

首次登录时,会提示您修改密码,如下图:

更改密码后,您将被重定向到用户帐户页面。

结论#

您已经在 Debian 系统上成功安装了 Redmine。您现在应该检查Redmine文档并了解有关如何配置和使用Redmine的更多信息。

如果您遇到问题或有反馈,请在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Debian 9 上安装和配置 Redmine 的相关文章

随机推荐

  • 如何使用 Rsyslog 和 MySQL 设置 LogAnalyzer

    本文是文章的第二部分使用 MySQL 和 LogAnalyzer 设置 Rsyslog在 CentOS RHEL 系统上 在里面第一部分我们已经将Rsyslog与MySQL数据库服务器集成 所有日志现在都保存在数据库中 下面是我们在第 1
  • 如何在 Ubuntu 22.04 上安装 Linux、Nginx、MySQL 和 PHP(LEMP Stack)

    Linux操作系统是非常流行且广泛使用的服务器操作系统 它为世界上大多数网站提供支持 包括雅虎 谷歌和 Facebook 等一些最著名的网站 逻辑首字母缩略词 LAMP 通常用来指自由和开源软件的混合物 这些软件经常一起使用来创建可以处理动
  • 如何统治科技世界?

    谷歌 Facebook 苹果和微软等科技巨头正在真正统治世界 他们不仅在商业和技术领域做出了贡献 而且还大力投资于社会责任项目 当他们从车库或大学宿舍起步时 是什么让他们成为科技界的巨头 他们的成功有很多因素 但所有这些科技巨头都有一些共同
  • 如何在 Debian 11/10 上安装 Tomcat 10

    Apache Tomcat 是一个开源 Web 服务器 带有用于发布基于 Java 的 Web 应用程序的 Servlet 容器 Tomcat 是由 Apache 软件基金会支持下的开放开发者社区开发和维护的 截至目前 Tomcat 10
  • 掌握 Bash 中的数字比较:综合指南

    Bash 是 Linux 和 Unix 系统中流行的命令行 shell 允许用户通过运行脚本或执行命令来有效地执行各种任务 编写 Bash 脚本的一个关键方面是能够根据变量值或命令输出做出决策 一项常见的决策任务是比较数值 本文提供了掌握
  • 如何并排放置两个 Div 元素

    在 Web 开发中 定位 HTML 元素的方法有无数种 一种常见的布局要求是并排放置两个 div 元素 这种布局在网页设计中经常使用 特别是当需要将内容水平分成不同的部分时 有多种方法可以实现此布局 包括使用 float flexbox 和
  • 如何在 RHEL 和 CentOS Stream 9 上安装 PHP 8.2-7.4

    PHP 是一种流行的脚本语言 用于开发动态 Web 应用程序 它是一种开源编程语言 可以轻松安装在包括 CentOS 9 在内的各种操作系统上 在本文中 我们将引导您完成在 CentOS 9 上安装 PHP 的步骤 在开始之前 请确保您拥有
  • Linux 中使用 GPG 密钥对的文件加密

    GPG 基本文件加密不需要公钥 私钥 但为了使加密文件更安全 您可以使用 RSA DSA 算法 这些算法生成公钥和私钥来加密文件 本文将帮助您在 Linux 中使用 GPG 密钥对完成以下三项文件加密任务 创建密钥对 为同一用户帐户本地加密
  • 了解基本的 Git 工作流程:添加、提交、推送

    在软件开发领域 版本控制至关重要 在各种可用的版本控制系统中 Git 因其稳健性 灵活性和分布式架构而成为行业标准 在本文中 我们将重点介绍基本 Git 工作流程的基本步骤 添加 提交和推送 了解 Git 在深入研究 Git 工作流程的复杂
  • 10 个适合旧电脑的最佳轻量级 Linux 发行版

    随着计算机的老化 其性能不可避免地会下降 操作系统的响应速度也会降低 对于想要继续使用旧硬件但受到可用资源限制的用户来说 这可能会令人沮丧 幸运的是 Linux 提供了各种针对旧计算机进行优化的轻量级发行版 使它们能够更流畅 更高效地运行
  • 如何在 CentOS/RHEL 7 和 Fedora 上安装 Python 3.9

    Python 是一种非常流行 用途广泛且易于学习的编程语言 广泛应用于从 Web 开发和数据分析到人工智能和机器学习的各个行业和应用程序 Python 3 9 是该语言的最新版本之一 提供了改进的性能和许多新功能 在本教程中 我们将指导您完
  • 如何在 Linux 上的 VirtualBox 中从 USB 驱动器启动

    使用 USB 启动物理机要容易得多 但 VirtualBox 不提供直接选择从 USB 启动的方法 因此 如果您有可启动 USB 驱动器 那么本文将帮助您了解如何使用可启动 USB 创建 VirtualBox 虚拟机 对于这个例子 我已经创
  • 如何在 Debian 9 Stretch 上安装 PHP(7.4、7.3 和 5.6)

    PHP 7 4 是可在 Debian 9 Stretch Linux 计算机上安装的最新版本 Ubuntu 用户可以访问我们的教程在 Ubuntu 上安装 PHP 7 本教程适用于 Debian 9 Stretch 用户在其系统上安装 PH
  • 如何在Linux终端上访问远程邮箱

    Linux 系统有大量的图形电子邮件客户端 您可以轻松安装它们以通过 POP IMAP 协议访问远程系统的邮箱 对于没有GUI界面的Linux服务器版本可以使用命令行邮件客户端访问远程邮箱 本教程将帮助您在Linux终端上使用POP IMA
  • Bash – 如何获取未来的日期和时间

    Linuxdate命令显示系统的当前日期和时间 在编写 shell 脚本时 我意识到有时我们需要查找未来的日期 例如 10 天 2 个月或 1 年之后的日期等 date 命令提供了一个选项来显示未来的日期 如所述 d date STRING
  • Magento 2 代码库和数据库备份脚本

    本教程将帮助您使用 shell 脚本自动执行 Magento2 代码库和数据库备份过程 该脚本将按计划的时间间隔执行自动备份 该脚本还能够根据配置删除较旧的备份 设置Magerun2 您需要在系统上下载并配置 Magerun2 脚本 wge
  • 如何使用 Mysqlcheck 检查和修复 MySQL 表

    数据库管理系统是现代软件应用程序无缝运行不可或缺的一部分 MySQL 是世界上使用最广泛的关系数据库管理系统之一 随着数据库的增长和发展 确保其中表的完整性 性能和运行状况至关重要 这就是 Mysqlcheck 发挥作用的地方 1 Mysq
  • 如何在 Ubuntu 20.04 上使用 VSFTPD 设置 FTP 服务器

    本文介绍如何在 Ubuntu 20 04 上安装和配置 FTP 服务器 用于在设备之间共享文件 FTP 文件传输协议 是一种标准网络协议 用于在远程网络之间传输文件 有多种可用于 Linux 的开源 FTP 服务器 最知名和最广泛使用的是P
  • 如何在 Ubuntu 20.04 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 通常 在虚拟机上运行 Ubuntu 时 不存在交换分区 唯一的
  • 如何在 Debian 9 上安装和配置 Redmine

    Redmine 是一款免费的开源项目管理和问题跟踪应用程序 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 在本教程中 我们将向您