Redmine是一个开源项目管理和问题跟踪系统。它是跨平台和跨数据库的,建立在Ruby on Rails框架之上。Redmine包含了对多个项目,Wiki,问题跟踪系统,论坛,日历,电子邮件通知等的支持。
在本教程中,我们将向您展示如何在Debian 9服务器上安装和配置最新版本的Redmine,我们将使用MySQL作为数据库后端,而Passenger+Nginx作为Ruby应用服务器。
先决条件
在继续本教程之前,请确保满足以下条件:
具有一个指向服务器公共IP的域名。我们将使用example.com
。以具有sudo权限的用户登录,已安装Nginx 。为您的域安装了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
。完成后,通过键入以下sql语句从MariaDB控制台退出:
EXIT;
安装Ruby
在Debian上安装Ruby的最简单方法是使用apt
软件包管理器。通过键入以下命令安装Ruby:
sudo apt install ruby-full
在撰写本文时,Debian存储库中的版本为2.3.3p222
,最新版本的Redmine支持该版本。如果您想通过Rbenv或RVM安装Ruby,请访问本教程。
安装Passenger和Nginx
Passenger是用于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密钥并启用Phusionpassenger存储库:
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下载页面以获取较新版本。
下载Redmine
使用以下curl命令下载Redmine.tar.gz存档:
sudo curl -L http://www.redmine.org/releases/redmine-4.0.4.tar.gz -o /tmp/redmine.tar.gz
下载完成后,解压缩存档文件,然后将其移动到/opt
目录:
cd /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-4.0.4 /opt/redmine
配置Redmine数据库
复制Redmine示例配置文件/opt/redmine/config/database.yml.example
到/opt/redmine/config/database.yml
:
sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
使用您喜欢的文本编辑器打开文件/opt/redmine/config/database.yml
,在本教程中我们将使用vim打开文件:
sudo vim /opt/redmine/config/database.yml
在vim中搜索production
部分,然后输入我们之前创建的MySQL数据库和用户信息:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8
完成后,保存文件并退出编辑器。
安装Ruby依赖项
使用cd命令切换到redmine目录并安装捆绑程序和Ruby依赖:
cd /opt/redmine/ sudo gem install bundler --no-rdoc --no-ri
sudo bundle install --without development test postgresql sqlite
生成密钥并迁移数据库
运行以下命令以生成密钥并迁移数据库:
cd /opt/redmine/ sudo bundle exec rake generate_secret_token sudo RAILS_ENV=production bundle exec rake db:migrate
设置正确的权限
Nginx以www-data
用户和组身份运行。通过运行以下chown命令更改权限:
sudo chown -R www-data: /opt/redmine/
配置Nginx
到现在为止,如果不检查本教程的先决条件,则应该已经在系统上安装了带有SSL证书的Nginx。使用您喜欢的文本编辑器打开文件/etc/nginx/sites-available/example.com
,然后创建以下Nginx虚拟主机配置文件:
sudo vim /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;
}
别忘了用您的Redmine域替换example.com,并设置SSL证书文件的正确路径。将所有 HTTP请求都将重定向到HTTPS 。通过创建指向sites-enabled
目录的符号链接来启用nginx虚拟主机配置:
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。首次登录时,将提示您更改密码,更改密码后,您将被重定向到用户帐户页面。
结论
您已成功在自己的Debian系统上安装Redmine。您现在应该查看Redmine文档,并了解有关如何配置和使用Redmine的更多信息。如果您遇到问题或有反馈,请在下面发表评论。