CentOS 7にRedmineをインストールする方法

Redmineは無料でオープンソースのWebベースのプロジェクト管理ツールです。Ruby on Railsで記述され、データベースを格納するための複数のデータベースサーバーをサポートしています。これは、複数のプロジェクト、役割ベースのACL、および問題追跡システムをサポートする機能豊富なアプリケーションです。また、ガントチャートとカレンダーのサポート、ファイル管理、プロジェクトごとのWikiとフォーラム、その他の多くの機能も備えています。Git、SVN、CVSなどのバージョン管理システムをサポートしています。また、多言語対応で、49もの言語をサポートしています。

このガイドはRedmine 3.4.4向けに書かれていますが、新しいバージョンにも適用される場合があります。

前提条件

  • Vultr CentOS 7サーバーインスタンス。
  • sudoのユーザー
  • サーバーに向けられたドメイン名。

このチュートリアルでは192.168.1.1、パブリックIPアドレスおよびredmine.example.comVultrインスタンスを指すドメイン名として使用します。サンプルのドメイン名とIPアドレスをすべて実際のものに置き換えてください。

CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、依存関係のインストールに進みます。

Apacheをインストールする

RedmineはRuby on Railsで記述されているため、アプリケーションを提供するには、Phusion PassengerがApache Webサーバーと統合する必要があります。Apacheをインストールします。

sudo yum -y install httpd httpd-devel libcurl-devel

Redmineアプリケーションをビルドするには、いくつかの開発ツールも必要です。必要なツールをインストールします。

sudo yum -y install ImageMagick ImageMagick-devel git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel

PostgreSQLをインストールする

Redmineは、MySQL、PostgreSQL、MSSQLなど、複数のタイプのデータベースサーバーをサポートしています。このチュートリアルでは、PostgreSQLを使用してRedmineデータベースサーバーをホストします。

PostgreSQLはオブジェクトリレーショナルデータベースシステムです。デフォルトのyumリポジトリには古いバージョンのPostgreSQLが含まれているため、PostgreSQLリポジトリをシステムに追加します。

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

PostgreSQLデータベースサーバーをインストールします。

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

データベースを初期化します。

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

PostgreSQLサーバーを起動し、起動時に自動的に起動するようにします。

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

デフォルトのPostgreSQLユーザーのパスワードを変更します。

sudo passwd postgres

PostgreSQLユーザーとしてログインします。

sudo su - postgres

Redmineの新しいPostgreSQLユーザーを作成します。

createuser redmine

の代わりに任意のユーザー名を使用できますredmine。PostgreSQLは、psqlデータベースでクエリを実行するためのシェルを提供します。PostgreSQLシェルに切り替えます。

psql

Redmineデータベース用に新しく作成したユーザーのパスワードを設定します。

ALTER USER redmine WITH ENCRYPTED password 'DBPassword';

DBPassword安全なパスワードに置き換えます。Redmineインストール用の新しいデータベースを作成します。

CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;

psqlシェルを終了します。

\q

sudoユーザーに切り替えます。

exit

pg_hba.confファイルを編集して、MD5ベースの認証を有効にします。

sudo nano /var/lib/pgsql/10/data/pg_hba.conf

次の行を検索し、値を変更peerし、identMETHODに列をtrustしてmd5、それぞれ。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

更新すると、構成は次のようになります。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

PostgreSQLを再起動して、変更を有効にします。

sudo systemctl restart postgresql-10

さらにいくつかの必要なPostgreSQL依存関係をインストールします。

sudo yum -y install libpqxx-devel protobuf-devel

Rubyをインストールする

システムを他のシステムから分離するために、権限のないユーザーを使用してアプリケーションを実行することをお勧めします。Redmineの新しいユーザーを作成し、新しく作成したユーザーに切り替えます。

sudo adduser redmine
sudo su - redmine

RubyバージョンマネージャーまたはRVMを使用して、最新バージョンのRubyをインストールします。Rubyの複数のバージョンをインストールおよび管理するために使用されます。

RVMのGPGキーをサーバーに追加します。

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

RVMをインストールします。

curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm

Rubyの利用可能なバージョンのリストを取得します。

rvm list known

Rubyバージョンの長いリストが表示されます。

[redmine@vultr ~]$ rvm list known
# MRI Rubies

[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head

...

リストから最新バージョンのRubyをインストールします。

rvm install 2.4

インストールされているバージョンのRubyを使用します。

rvm use 2.4

バージョンを確認できます。

ruby -v

同様の出力が表示されます。

[redmine@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

Rubyアプリケーションの依存関係マネージャーであるbundlerをインストールします。

gem install bundler

Rubyがインストールされました。Redmineをインストールする前に、Phusion Passengerをインストールする必要があります。

乗客をインストール

次のコマンドを実行してPassengerをインストールします。

gem install passenger

redmineユーザーのホームディレクトリに実行権限を付与します。乗客は、アプリケーションを提供するためにバイナリを実行する必要があります。

chmod o+x "/home/redmine"

Passenger用のApacheモジュールをインストールします。

passenger-install-apache2-module

インストーラースクリプトはいくつかの質問をします。まず、インストールプロセスに関する情報を提供します。次に、使用する言語を選択するように求められます。アプリケーションはRuby on Railsで記述されているため、メニューから「Ruby Enter」を選択し、「」を押して先に進みます。

Which languages are you interested in?

Use <space> to select.
If the menu doesn't display correctly, press '!'

 ‣ ⬢  Ruby
   ⬡  Python
   ⬡  Node.js
   ⬡  Meteor

インストーラーが要件を確認します。インストーラーは欠落している依存関係に遭遇することはなく、モジュールのコンパイルとインストールに自動的に進みます。

モジュールがインストールされると、モジュールをApache構成ファイルに追加するように求められます。

Almost there!

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
     PassengerDefaultRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
   </IfModule>

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER when you are done editing.

ここではこれをスキップし、チュートリアルの後半で完了します。現在ログインしているユーザーにはsudo権限がないためです。Enterこの手順をスキップするには、「」を押します。

最後に、インストーラスクリプトがインストールを検証し、Apache構成でPassengerモジュールが指定されていないことを示す警告が表示されます。

Validating installation...

 * Checking whether this Passenger install is in PATH... ✓
 * Checking whether there are no other Passenger installations... ✓
 * Checking whether Apache is installed... ✓
 * Checking whether the Passenger module is correctly configured in Apache... (!)

   You did not specify 'LoadModule passenger_module' in any of your Apache
   configuration files. Please paste the configuration snippet that this
   installer printed earlier, into one of your Apache configuration files, such
   as /etc/httpd/conf/httpd.conf.


Detected 0 error(s), 1 warning(s).
Press ENTER to continue.

ApacheのPassengerモジュールをインストールしたので、Redmineのダウンロードとインストールに進みます。

Redmineをインストールする

Redmineの公式ダウンロードページから最新バージョンのRedmineをダウンロードしてください

cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz

便宜上、アーカイブを抽出し、ディレクトリの名前を変更します。

tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/

サンプル構成ファイルを本番ロケーションにコピーします。

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

コピーしたデータベース構成ファイルを開いて、データベースの詳細を入力します。

nano config/database.yml

デフォルトでは、データベースファイルはMySQL用に構成されています。本番環境と開発環境の構成を見つけ、MySQLアダプターを使用するテストを行います。これらの行をすべてコメント化します。

#production:
#  adapter: mysql2
#  database: redmine
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

#development:
#  adapter: mysql2
#  database: redmine_development
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

#test:
#  adapter: mysql2
#  database: redmine_test
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8

productionさらに、postgresqlアダプターの構成を含む、コメント化されている行を見つけます。これらの行のコメントを外して、データベース名とユーザー資格情報を更新します。必ず2つのスペースである正しいインデントを使用してください。

production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "DBPassword"

PostgreSQL構成を使用するようにアプリケーションを構成します。

bundle config build.pg --with-pg-config=/usr/pgsql-10/bin/pg_config

アプリケーションに必要なアプリケーションの依存関係をインストールします。

bundle install --without development test

インストールの最後に次のメッセージが表示されます。

Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

次のコマンドは、セッションデータのエンコードに使用されるシークレットトークンを生成します。

bundle exec rake generate_secret_token

PostgreSQLデータベースを書き込みます。

RAILS_ENV=production bundle exec rake db:migrate

次のコマンドを実行すると、デフォルトのデータがPostgreSQLデータベースに書き込まれます。

RAILS_ENV=production bundle exec rake redmine:load_default_data

上記のコマンドでは、アプリケーションで使用するデフォルトの言語を選択するように求められます。デフォルトの選択は英語です。お好みに合わせてお選びください。

[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.

Redmineアプリケーションのインストールが完了しました。ディレクトリーとファイルの所有権と許可を変更します。

mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

非特権ユーザーから必要なものすべてを構成しました。をsudo実行して、ユーザーに切り替えますsu - <username>

Apacheを構成する

ApacheのPassengerモジュールをApache構成ファイルに追加します。これは自動的にPassengerモジュールをロードします。

echo "LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf

Redmineアプリケーション用の新しい仮想ホストファイルを作成します。

sudo nano /etc/httpd/conf.d/redmine.conf

ファイルに次の内容を入力します。

<VirtualHost *:80>
    ServerName redmine.example.com

    DocumentRoot /home/redmine/redmine/public

    PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
    PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
    PassengerUser redmine

    <Directory /home/redmine/redmine/public>
      Allow from all
      Options -MultiViews
      Require all granted
    </Directory>
</VirtualHost>

redmine.example.com実際のドメイン名に置き換えてください。また、PassengerRootおよびへのパスPassengerRubyが正しいことを確認してください。RubyまたはPassengerの新しいリリースがあると、バイナリへのパスが変更される可能性があります。これらのパスを見つけるには、次のコマンドを実行します。

sudo su redmine -c "passenger-config about ruby-command"

次の出力が表示されます。

[user@vultr ~]$ sudo su redmine -c "passenger-config about ruby-command"
passenger-config was invoked through the following Ruby interpreter:
  Command: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
  Version: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
  To use in Apache: PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
  To use in Nginx : passenger_ruby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
  To use with Standalone: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/bin/passenger start

仮想ホストファイルが作成されたら、Apache Webサーバーを再起動します。

sudo systemctl restart httpd

ファイアウォール構成を変更して、ポート80がファイアウォールを通過できるようにします。

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload

これで、Redmineインターフェースにアクセスできますhttp://redmine.example.com。ユーザー名adminとパスワードでログインしますadmin。最初のログイン時に、Redmineはパスワードの更新を要求します。

Let's Encrypt SSLによるApacheの保護

Redmineのインストールは公開サーバー上にあるため、サーバーからのデータ交換を保護するためにSSLを使用することをお勧めします。

Let's Encrypt CAのクライアントアプリケーションであるCertbotをインストールします。

sudo yum -y install epel-release
sudo yum -y install certbot mod_ssl

あなたが証明書を要求する前に、ポートできるようにする必要があります80し、443または標準HTTPHTTPSファイアウォールを介してサービスを。80以前にすでにポートを許可しているので、ポートを許可しましょう443

sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

注: Let's Encrypt CAから証明書を取得するには、証明書を生成するドメインをサーバーに向ける必要があります。そうでない場合は、ドメインのDNSレコードに必要な変更を加え、DNSが伝播するのを待ってから、証明書要求を再度行ってください。証明書ボットは、証明書を提供する前にドメイン認証局をチェックします。

SSL証明書を生成します。

sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com

生成された証明書は、おそらくに保存され/etc/letsencrypt/live/redmine.example.com/ます。SSL証明書はとして保存されcert.pem、秘密鍵はとして保存されprivkey.pemます。

Let's Encrypt証明書は90日で期限切れになるため、cronジョブを使用して証明書の自動更新を設定することをお勧めします。

rootユーザーのCronジョブファイルを開きます。

sudo crontab -e

ファイルの最後に次の行を追加します。

30 5 * * * /usr/bin/certbot renew --quiet

上記のCronジョブは、毎日午前5時30分に実行されます。証明書の有効期限が切れる場合、証明書は自動的に更新されます。

先ほどRedmine用に作成した仮想ホストファイルを編集します。

sudo nano /etc/httpd/conf.d/redmine.conf

仮想ホストファイルを次のように変更します。

<VirtualHost *:80>
    Redirect permanent / https://www.example.com/
    ServerName redmine.example.com
</VirtualHost>

<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName redmine.example.com
    DocumentRoot "/home/redmine/redmine/public"
    <Directory "/home/redmine/redmine/public">
        Options None
        Require all granted
    </Directory>
    PassengerAppEnv production
    PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
    PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
    PassengerUser redmine
    PassengerHighPerformance on

    SSLEngine on
    SSLCertificateFile      /etc/letsencrypt/live/redmine.example.com/cert.pem
    SSLCertificateKeyFile   /etc/letsencrypt/live/redmine.example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem

    SSLProtocol             all -SSLv2 -SSLv3
    SSLHonorCipherOrder     on
    SSLCipherSuite          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS

    <IfModule headers_module>
        Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
    </IfModule>
</VirtualHost>

ファイルを保存して、エディターを終了します。

Apacheを再起動して、変更を有効にします。

sudo systemctl restart httpd

RedmineにHTTPSからアクセスできるようになりましたhttps://redmine.example.com

おめでとうございます。CentOS7インスタンスにRedmineが正常にインストールされました。プロジェクトを作成またはインポートして、プロジェクトの開発を開始します。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。