如何在CentOS 8上安装和配置Redmine

时间:2020-03-05 15:24:31  来源:igfitidea点击:

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

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

本教程说明了如何在CentOS 8上安装和配置Redmine的最新版本。
我们将使用MariaDB作为数据库后端,而使用Passenger + Apache作为Ruby应用程序服务器。

准备工作

确保我们满足以下准备工作:

  • 指向服务器公共IP的域名。
  • Tou以root用户或者具有sudo特权的用户身份登录。

创建一个MySQL数据库

Redmine支持MySQL/MariaDB,Microsoft SQL Server,SQLite 3和PostgreSQL。

我们将使用MariaDB作为数据库后端。

如果CentOS服务器上未安装MariaDB或者MySQL,则可以按照以下说明进行安装。

使用以下命令登录到MySQL Shell:

sudo mysql

在MySQL Shell中,运行以下SQL语句创建一个新数据库,一个新用户,并授予该用户对该数据库的访问权限:

CREATE DATABASE redmine CHARACTER SET utf8;GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';

确保使用强密码更改“使用强密码更改”。

完成后,退出MySQL Shell:

EXIT;

安装Passenger,Apache和Ruby

Passenger是一个快速,轻量级的Web应用程序服务器,用于Ruby,Node.js和Python,可以与Apache和Nginx集成。

我们将乘客安装为Apache模块。

启用EPEL存储库:

sudo dnf install epel-releasesudo dnf config-manager --enable epel

启用存储库后,更新软件包列表并安装Ruby,Apache和Passenger:

sudo dnf install httpd mod_passenger passenger passenger-devel ruby

启动Apache服务并启用它以在启动时启动:

sudo systemctl enable httpd --now

创建新的系统用户

创建一个具有主目录“/opt/redmine”的新用户和组,该用户和组将运行Redmine实例:

sudo useradd -m -U -r -d /opt/redmine redmine

将“ apache”用户添加到“ redmine”组,并更改“/opt/redmine”目录权限,以便Apache可以访问它:

sudo usermod -a -G redmine apachesudo chmod 750 /opt/redmine

安装Redmine

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

在继续下一步之前,请访问Redmine下载页面以查看是否有较新的版本。

安装构建Redmine所需的GCC编译器和库:

sudo dnf group install "Development Tools"sudo dnf install zlib-devel curl-devel openssl-devel mariadb-devel ruby-devel

确保我们以“ redmine”用户身份运行以下步骤:

sudo su - redmine

1.下载Redmine

使用“ curl”下载Redmine存档:

curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o redmine.tar.gz

下载完成后,解压缩存档:

tar -xvf redmine.tar.gz

2.配置Redmine数据库

复制Redmine示例数据库配置文件:

cp /opt/redmine/redmine-4.1.0/config/database.yml.example /opt/redmine/redmine-4.1.0/config/database.yml

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

nano /opt/redmine/redmine-4.1.0/config/database.yml

搜索“生产”部分,然后输入我们之前创建的MySQL数据库和用户信息:

/opt/redmine/redmine-4.1.0/config/database.yml

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "change-with-strong-password"
  encoding: utf8mb4

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

3.安装Ruby依赖项

切换到“ redmine-4.1.0”目录并安装Ruby依赖项:

cd ~/redmine-4.1.0gem install bundler --no-rdoc --no-ribundle install --without development test postgresql sqlite --path vendor/bundle

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

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

bundle exec rake generate_secret_tokenRAILS_ENV=production bundle exec rake db:migrate

配置Apache

切换回sudo用户并创建以下Apache vhost文件:

exitsudo nano /etc/httpd/conf.d/example.com.conf

/etc/httpd/conf.d/example.com.conf

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /opt/redmine/redmine-4.1.0/public
    <Directory /opt/redmine/redmine-4.1.0/public>
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    </Directory>
    ErrorLog /var/log/httpd/example.com-error.log
    CustomLog /var/log/httpd/example.com-access.log combined
</VirtualHost>

别忘了用Redmine域替换example.com。

通过键入以下命令重新启动Apache服务:

sudo systemctl restart httpd

使用SSL配置Apache

如果域没有受信任的SSL证书,则可以按照以下说明生成免费的“加密SSL”证书。

生成证书后,按如下所示编辑Apache配置:

sudo nano /etc/httpd/conf.d/example.com.conf

/etc/httpd/conf.d/example.com.conf

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  Redirect permanent/https://example.com/
</VirtualHost>
<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com
  Protocols h2 http/1.1
  <If "%{HTTP_HOST} == 'www.example.com'">
    Redirect permanent/https://example.com/
  </If>
  DocumentRoot /opt/redmine/redmine-4.1.0/public
  ErrorLog /var/log/httpd/example.com-error.log
  CustomLog /var/log/httpd/example.com-access.log combined
  SSLEngine On
  SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  <Directory /opt/redmine/redmine-4.1.0/public>
    Options Indexes ExecCGI FollowSymLinks
    Require all granted
    AllowOverride all
  </Directory>
</VirtualHost>

不要忘了用Redmine域替换example.com并为SSL证书文件设置正确的路径。
所有HTTP请求都将重定向到HTTPS。

访问Redmine

打开浏览器,键入域,并假设安装成功,将出现类似于以下的屏幕:

Redmine的默认登录凭据为:

  • 用户名:admin
  • 密码:admin

首次登录时,系统将提示我们更改密码,如下所示:

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

如果我们无法访问该页面,则可能是防火墙阻止了Apache端口。

使用以下命令打开必要的端口:

sudo firewall-cmd --permanent --zone=public --add-port=443/tcpsudo firewall-cmd --permanent --zone=public --add-port=80/tcpsudo firewall-cmd --reload