Ubuntu 16.04にRedmineをインストールする方法

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

前提条件

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

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

How to Update Ubuntu 16.04のガイドを使用してベースシステムを更新します。システムが更新されたら、依存関係のインストールに進みます。

Apacheをインストールする

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

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

sudo apt -y install apache2 apache2-dev libcurl4-openssl-dev

RubyとPassengerをビルドするには、いくつかの開発ツールも必要です。必要なツールをインストールします。

sudo apt -y install imagemagick libmagickwand-dev git build-essential automake libgmp-dev

PostgreSQLをインストールする

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

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

echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update

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

sudo apt -y install postgresql

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

sudo systemctl start postgresql
sudo systemctl enable postgresql

デフォルトの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

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

sudo apt -y install libpqxx-dev protobuf-compiler

Rubyをインストールする

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

RVMリポジトリを追加します。

sudo apt-add-repository -y ppa:rael-gc/rvm
sudo apt update

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

sudo apt -y install rvm

Rubyシステム全体をインストールする必要があるため、一時的にrootユーザーに切り替えます。

sudo -i

環境変数を更新します。

echo "source /etc/profile.d/rvm.sh" | tee -a /etc/profile
source /etc/profile.d/rvm.sh

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

rvm install 2.5.1

注: Rubyの別のバージョンを使用している場合は、それに応じてRubyパスを更新してください。

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

rvm use 2.5.1 --default

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

ruby -v

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

root@vultr:~# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

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

gem install bundler

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

乗客をインストール

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

gem install passenger

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 /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
     PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.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.

ここではこれをスキップし、チュートリアルの後半で完了します。を押して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/apache2/apache2.conf.


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

ApacheのPassengerモジュールをインストールしたので、Redmineのダウンロードとインストールに進みます。sudouserを使用してこれ以上コマンドを実行する必要がないため、もう一度ユーザーに切り替えrootます。

exit

Redmineをインストールする

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

sudo adduser --disabled-password --gecos "Redmine User" redmine
sudo su - 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/bin/pg_config

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

bundle install --path vendor/bundle --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.
Bundled gems are installed into `./vendor/bundle`

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

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 /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/apache2/apache2.conf

注: Passengerの新しいリリースがあると、Passengerモジュールへのパスが変更される場合があります。モジュールへのパスを見つけるには、sudo find / -name mod_passenger.soコマンドを使用します。

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

sudo nano /etc/apache2/sites-available/redmine.conf

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

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

    DocumentRoot /home/redmine/redmine/public

    PassengerRoot /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
    PassengerUser redmine

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

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

passenger-config about ruby-command

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

user@vultr:~$ passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
  Command: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  Version: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
  To use in Apache: PassengerRuby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use in Nginx : passenger_ruby /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby
  To use with Standalone: /usr/share/rvm/gems/ruby-2.5.1/wrappers/ruby /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3/bin/passenger start


## Notes for RVM users
Do you want to know which command to use for a different Ruby interpreter? 'rvm use' that Ruby interpreter, then re-run 'passenger-config about ruby-command'.

仮想ホストファイルが作成されたら。構成をアクティブにします。

sudo a2ensite redmine

Apache Webサーバーを再起動します。

sudo systemctl restart apache2

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

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

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

Certbotリポジトリを追加します。

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

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

sudo apt -y install certbot

注: 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分に実行されます。証明書の有効期限が切れる場合、証明書は自動的に更新されます。

ApacheのSSLモジュールを有効にします。

sudo a2enmod ssl

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

sudo nano /etc/apache2/sites-available/redmine.conf

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

<VirtualHost *:80>
    ServerName redmine.example.com
    Redirect permanent / https://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 /usr/share/rvm/gems/ruby-2.5.1/gems/passenger-5.2.3
    PassengerDefaultRuby /usr/share/rvm/gems/ruby-2.5.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 apache2

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

おめでとうございます。Ubuntu16.04インスタンスに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の未来は、日々成長を続けています。