如何在CentOS 7上安装Redmine 3和Nginx

Redmine是项目管理和问题跟踪器的开源Web应用程序。 Redmine基于Ruby on Rails框架,具有跨平台和跨数据库支持,并提供42种语言的翻译。 该软件允许您跟踪多个项目,它集成了新闻,文档和文件管理以及每个项目的支持wiki。 用户帐户可以针对LDAP目录进行身份验证,第三方软件可以通过REST API进行连接。

在本教程中,我们将安装Redmine 3.2与Nginx作为Web服务器,MySQL作为CentOS 7(64位)操作系统上的数据库服务器。

前提条件

  • CentOS 7 - 64位。
  • 根权限

第1步 - 安装Redmine依赖项

Redmine有很多依赖,我们将首先安装。 以root用户身份登录到CentOS 7服务器:

ssh root@192.168.1.115

使用以下yum命令安装Redmine所需的所有依赖项和ruby和rvm所需的包:

yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion

安装将要求一个MySQL密码。 请求时输入新的MySQL根密码。

第2步 - 安装Ruby和RVM

在这一步中,我们将安装rvm(最新版本)和ruby 2.2。 Redmine 3.2支持ruby版本2.2。 RVM(Ruby Version Manager)是一个命令行工具,允许您在同一台服务器上安装,管理和使用多个ruby环境。

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5

安装完成后,我们必须重新加载RVM并将其添加到.bashrc文件中进行自动重新加载:

source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc

重新加载.bashrc文件并检查Ruby和RVM版本。

source ~/.bashrc
ruby -v
rvm -v

第3步 - 配置Redmine数据库

在这一步中,我们将从官方的MySQL存储库安装mysql-server软件包。

添加Oracle MySQL存储库并检查存储库列表。

rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist

以确保MySQL服务器存储库已成功添加。

使用此yum命令安装MySQL服务器。

yum install mysql-server

安装完成后,启动mysqld服务并配置MySQL根密码。

systemctl start mysqld

Mysql服务器已经启动。 现在使用grep命令获取mysql服务器的临时根密码:

grep 'temporary password' /var/log/mysqld.log

你会看到类似的结果:

2016-10-31T23:06:50.974555Z 1 [Note] A temporary password is generated for root@localhost: />y.)uWui8j*

所以我们知道MySQL服务器的root密码是:/> y.)uWui8j*

现在我们将为mysql服务器设置一个新的根密码。 使用用户root和生成的密码登录到mysql shell:

mysql -u root -p
GENERATED PASSWORD: />y.)uWui8j*

在下面的mysql查询中设置一个新的root用户密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aqwe123@!';

接下来,创建一个名为“redmine”的新数据库,并使用密码“redmine”创建一个新用户“redmine”(在您的服务器上使用安全密码!)。 然后将用户的所有权限授予“redmine”数据库。

create database redmine;
create user redmine@localhost identified by 'Redmine123@!';
grant all privileges on redmine.* to redmine@localhost identified by 'Redmine123@!';
flush privileges;
exit

数据库和用户已创建。

第4步 - 安装PhusionPassenger和Nginx

Phusion Passenger是可以与apache和nginx一起使用的Web应用程序服务器。 它支持多种语言:Ruby,Python和Nodejs。 我们很容易,快速,可以处理更多流量并提供安全性增强。

在本章中,我们将安装Phusion Passenger并将其与我们的nginx Web服务器进行整合。 用gem命令安装Passenger,然后运行命令passenger-nginx-module。

gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module

该命令将询问您将使用哪种编程语言,选择RubyPython

将会询问有关nginx的安装; 选择“ 是:为我下载,编译和安装Nginx(推荐) ”。

您将被要求输入nginx安装目录,使用默认的' / opt / nginx /' ,只需按“ Enter ”即可。

第5步 - 配置Nginx

完成nginx安装后,转到安装目录,并使用编辑器编辑nginx.conf文件。

cd /opt/nginx/
cd conf/
vim nginx.conf

将下面的配置粘贴在第24行:

include vhost/*.conf;

保存文件并退出编辑器。

为虚拟主机配置创建一个新的“vhost”目录。

mkdir -p / opt / nginx / conf / vhost

转到vhost目录并使用vim创建redmine virtualhost配置:

cd /opt/nginx/conf/vhost/
vim redmine.conf

将虚拟主机配置粘贴到下面:

    server {
        listen       80;
        server_name  www.redmine.me;

        root /var/www/redmine/public;
        passenger_enabled on;
        client_max_body_size      10m; # Max attachemnt size

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

保存文件。

Ubuntu 16.04使用systemd作为init系统。 接下来我们为systemd配置nginx。 转到systemd目录并创建名为“nginx.service”的新服务文件。

cd /lib/systemd/system/
vim nginx.service

粘贴nginx脚本为systemd下面:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

保存并退出。

重新加载systemd服务,并尝试使用systemctl命令启动nginx:

systemctl daemon-reload
systemctl start nginx

如果要检查nginx,请查看打开的端口80:

netstat -plntu | grep nginx

结果应该是这样的:

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4871/nginx

第6步 - 安装Redmine

为Redmine安装创建一个新目录。 我将在这里使用'/ var / www /'目录。

mkdir -p /var/www/

转到'/ var / www /'目录,并使用svn命令下载Redmine:

cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine

转到Redmine目录并复制配置文件和数据库配置文件:

cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml

使用vim编辑database.yml文件:

vim config/database.yml

在生产部分,填写数据库名称用户和密码:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "Redmine123@!"
  encoding: utf8

保存文件。

在redmine目录中,创建一些新目录,并将所有者更改为user和group nobody:

mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets

为redmine安装bundler和gem依赖项:

gem install bundler
bundle install --without development test

生成秘密令牌,然后生成数据库:

bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

重新启动nginx并使用网络浏览器访问redmine域名:

systemctl restart nginx

访问redmine安装,我的是:www.redmine.co

登录管理页面:www.redmine.co/login

默认用户和密码为“admin”。

创建一个新的示例项目。

示例项目页面。

在CentOS 7上安装Redmine与Nginx和MySQL已经取得了成功。

结论

Redmine是一个基于Web的项目管理和问题跟踪应用程序。 Redmine是跨平台的,所以我们可以在Windows,Linux或Mac OS上运行它。 Redmine支持许多数据库,如MySQL,PostgreSQL,Microsoft SQL Server和SQLite。 Redmine易于安装和配置,我们可以使用Apache或Nginx作为Web服务器。 Redmine是非常强大的,具有许多功能,如多语言支持,文件管理,wiki和REST API。 如果您想通过问题跟踪构建自己的项目管理,Redmine是最好的免费解决方案之一。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏