如何在Ubuntu 18.04上安装和配置Redmine
Redmine是最受欢迎的开源项目管理和问题跟踪软件工具之一。它是跨平台和跨数据库,构建在Ruby on Rails框架之上。
Redmine包括对多个项目,维基,问题跟踪系统,论坛,日历,电子邮件通知等的支持。
本教程介绍如何在Ubuntu 18.04服务器上安装和配置最新版本的Redmine,使用MySQL作为数据库后端,将Passenger + Nginx作为Ruby应用程序服务器。
先决条件
在继续本教程之前,请确保您已满足以下先决条件:
- 您有一个指向您的服务器公共IP的域名。在本教程中我们将使用
example.com
。 - 您以具有sudo权限的用户身份登录。
- 您按照这些说明安装了Nginx 。
- 您已为您的域安装了SSL证书。您可以按照这些说明安装免费的Let’s加密SSL证书。
创建MySQL数据库
Redmine支持MySQL / MariaDB,Microsoft SQL Server,SQLite 3和PostgreSQL。在本教程中,我们将使用MySQL作为数据库后端。
如果您已经在Ubuntu服务器上安装了MySQL,则可以按照这些说明进行安装。
键入以下命令登录MySQL shell:
sudo mysql
在MySQL shell中,运行以下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
使用强密码进行更改。
完成后,键入以下命令退出mysql控制台:
EXIT;
安装Ruby
在Ubuntu系统上安装Ruby的最简单方法是通过apt包管理器。在撰写本文时,Ubuntu存储库中的版本是2.5.1,这是Ruby的最新稳定版本。
输入以下命令安装Ruby:
sudo apt install ruby-full
如果要通过Rbenv或RVM安装Ruby,请查看本指南。
安装Passenger和Nginx
Passenger是一个快速轻量级的Web应用程序服务器,适用于Ruby,Node.js和Python,可以与Apache和Nginx集成。我们将安装Passenger作为Nginx模块。
确保遵循先决条件并安装Nginx,然后再继续执行以下步骤。
首先安装必要的包:
sudo apt install dirmngr gnupg apt-transport-https ca-certificates
导入存储库GPG密钥并启用Phusionpassenger存储库:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger bionic main'
启用存储库后,更新软件包列表并安装Passenger Nginx模块:
sudo apt updatesudo apt install libnginx-mod-http-passenger
在Ubuntu上安装Redmine
我们首先安装构建Redmine所需的依赖项:
sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev
在撰写本文时,Redmine的最新稳定版本是4.0.0版。
在继续下一步之前,您应该检查Redmine下载页面以查看是否有更新的版本。
1.下载Redmine
使用以下curl命令下载Redmine存档:
sudo curl -L http://www.redmine.org/releases/redmine-4.0.0.tar.gz -o /tmp/redmine.tar.gz
下载完成后,提取存档并将其移动到/opt
目录:
cd /tmpsudo tar zxf /tmp/redmine.tar.gzsudo mv /tmp/redmine-4.0.0 /opt/redmine
2.配置Redmine数据库
首先复制Redmine示例配置文件:
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依赖项
导航到redmine目录并安装bundler和其他Ruby依赖项:
cd /opt/redmine/sudo gem install bundler --no-rdoc --no-risudo 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
到目前为止,您应该已经在系统上安装了Nginx和SSL证书,如果没有,请检查本教程的先决条件。
打开文本编辑器并创建以下Nginx服务器块文件:
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证书文件的正确路径。此配置中使用的片段在本指南中创建。
通过创建指向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
打开浏览器,键入您的域并假设安装成功,将出现类似于以下内容的屏幕:
Redmine的默认登录凭据是:
- 用户名:admin
- 密码:admin
当您第一次登录时,系统将提示您更改密码,如下所示:
更改密码后,您将被重定向到用户帐户页面。
结论
您已在Ubuntu系统上成功安装了Redmine。您现在应该查看Redmine文档并了解有关如何配置和使用Redmine的更多信息。