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 561F9B9CAC40B2F7
sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger stretch main'
更新软件包列表并安装 Passenger Nginx 模块:
sudo apt update
sudo 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 /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo 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_token
sudo RAILS_ENV=production bundle exec rake db:migrate
5. 设置正确的权限#
Nginx 运行为www-data
用户和组。通过发出以下命令设置正确的权限chown命令
:
sudo chown -R www-data: /opt/redmine/
到目前为止,您的系统上应该已经安装了带有 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的更多信息。
如果您遇到问题或有反馈,请在下面发表评论。