ユーザ用ツール

サイト用ツール


サイドバー

Top

タグ

検索タグ

メニュー


変更履歴

ruby:redmine_install

目次

Redmine のインストール

Ruby のインストール

Web サーバーのインストール

データベース サーバーのインストール

依存パッケージのインストール

開発ツール(Cコンパイラ等)のインストール

$ sudo dnf groupinstall "Development Tools"
$ sudo dnf install gcc-c++

Passengerのビルドに必要なヘッダファイルなどのインストール

$ sudo dnf install ruby-devel openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel

PostgreSQL とヘッダファイルのインストール

$ sudo dnf install postgresql-server postgresql-devel

ImageMagickとヘッダファイル・日本語フォントのインストール

$ sudo dnf install ImageMagick ImageMagick-devel ipa-pgothic-fonts

空のデータベースとユーザーの作成

空のデータベースの作成

データベース ユーザーを作成する。

$ psql -U postgres
psql (10.6)
"help" でヘルプを表示します。

postgres=# CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'password' NOINHERIT VALID UNTIL 'infinity';
CREATE ROLE

データベースを作成する。

postgres=# CREATE DATABASE redmine_db WITH ENCODING='UTF8' OWNER=redmine;
CREATE DATABASE

データベースの日付形式をISO(PostgreSQLのデフォルト)に設定する。

postgres=# ALTER DATABASE "redmine_db" SET datestyle="ISO,MDY";
ALTER DATABASE
postgres=# \q

ユーザーの作成

$ sudo useradd redmine
$ sudo passwd redmine

パッケージのダウンロードと展開

ダウンロード — Redmine.JP から最新の Redmine(redmine-4.0.1.tar.gz) をダウンロードする。

$ su - redmine
$ curl -O http://www.redmine.org/releases/redmine-4.0.1.tar.gz
$ tar zxvf redmine-4.0.1.tar.gz

データベースに接続するための設定

$ cd redmine-4.0.1
$ cp config/database.yml.example config/database.yml
$ vi config/database.yml
config/database.yml
# Default setup is given for MySQL with ruby1.9.
# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
# Line indentation must be 2 spaces (no tabs).
 
production:
  adapter: postgresql
  database: redmine_db
  host: localhost
  username: redmine
  password: "password"
  encoding: utf8
 
#development:
#  adapter: mysql2
#  database: redmine_development
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8
 
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
#test:
#  adapter: mysql2
#  database: redmine_test
#  host: localhost
#  username: root
#  password: ""
#  encoding: utf8
 
# PostgreSQL configuration example
#production:
#  adapter: postgresql
#  database: redmine
#  host: localhost
#  username: postgres
#  password: "postgres"
 
# SQLite3 configuration example
#production:
#  adapter: sqlite3
#  database: db/redmine.sqlite3
 
# SQL Server configuration example
#production:
#  adapter: sqlserver
#  database: redmine
#  host: localhost
#  username: jenkins
#  password: jenkins

※ development、test もコメントアウトしないと mysql2 をビルドしようとしてエラーになる。

依存するソフトウェアのインストール

Bundlerをインストールする。

$ gem install bundler
Fetching: bundler-2.0.1.gem (100%)
Successfully installed bundler-2.0.1
Parsing documentation for bundler-2.0.1
Installing ri documentation for bundler-2.0.1
Done installing documentation for bundler after 4 seconds
1 gem installed

Redmineを実行するために必要なすべてのgemをインストールする。

$ bundle install --path vendor/bundle --without development test
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`.
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Fetching rake 12.3.2
Installing rake 12.3.2
Fetching concurrent-ruby 1.1.4
Installing concurrent-ruby 1.1.4
Fetching i18n 0.7.0
Installing i18n 0.7.0
Fetching minitest 5.11.3
Installing minitest 5.11.3
Fetching thread_safe 0.3.6
Installing thread_safe 0.3.6
Fetching tzinfo 1.2.5
Installing tzinfo 1.2.5
Fetching activesupport 5.2.2
Installing activesupport 5.2.2
Fetching builder 3.2.3
Installing builder 3.2.3
Fetching erubi 1.8.0
Installing erubi 1.8.0
Fetching mini_portile2 2.4.0
Installing mini_portile2 2.4.0
Fetching nokogiri 1.10.1
Installing nokogiri 1.10.1 with native extensions
Fetching rails-dom-testing 2.0.3
Installing rails-dom-testing 2.0.3
Fetching crass 1.0.4
Installing crass 1.0.4
Fetching loofah 2.2.3
Installing loofah 2.2.3
Fetching rails-html-sanitizer 1.0.4
Installing rails-html-sanitizer 1.0.4
Fetching actionview 5.2.2
Installing actionview 5.2.2
Fetching rack 2.0.6
Installing rack 2.0.6
Fetching rack-test 1.1.0
Installing rack-test 1.1.0
Fetching actionpack 5.2.2
Installing actionpack 5.2.2
Fetching nio4r 2.3.1
Installing nio4r 2.3.1 with native extensions
Fetching websocket-extensions 0.1.3
Installing websocket-extensions 0.1.3
Fetching websocket-driver 0.7.0
Installing websocket-driver 0.7.0 with native extensions
Fetching actioncable 5.2.2
Installing actioncable 5.2.2
Fetching globalid 0.4.2
Installing globalid 0.4.2
Fetching activejob 5.2.2
Installing activejob 5.2.2
Fetching mini_mime 1.0.1
Installing mini_mime 1.0.1
Fetching mail 2.7.1
Installing mail 2.7.1
Fetching actionmailer 5.2.2
Installing actionmailer 5.2.2
Fetching method_source 0.9.2
Installing method_source 0.9.2
Fetching thor 0.20.3
Installing thor 0.20.3
Fetching railties 5.2.2
Installing railties 5.2.2
Fetching actionpack-xml_parser 2.0.1
Installing actionpack-xml_parser 2.0.1
Fetching activemodel 5.2.2
Installing activemodel 5.2.2
Fetching arel 9.0.0
Installing arel 9.0.0
Fetching activerecord 5.2.2
Installing activerecord 5.2.2
Fetching mimemagic 0.3.3
Installing mimemagic 0.3.3
Fetching marcel 0.3.3
Installing marcel 0.3.3
Fetching activestorage 5.2.2
Installing activestorage 5.2.2
Fetching public_suffix 3.0.3
Installing public_suffix 3.0.3
Fetching addressable 2.6.0
Installing addressable 2.6.0
Using bundler 2.0.1
Fetching css_parser 1.6.0
Installing css_parser 1.6.0
Fetching csv 3.0.4
Installing csv 3.0.4
Fetching htmlentities 4.3.4
Installing htmlentities 4.3.4
Fetching net-ldap 0.16.1
Installing net-ldap 0.16.1
Fetching pg 1.1.4
Installing pg 1.1.4 with native extensions
Fetching ruby-openid 2.3.0
Installing ruby-openid 2.3.0
Fetching rack-openid 1.4.2
Installing rack-openid 1.4.2
Fetching sprockets 3.7.2
Installing sprockets 3.7.2
Fetching sprockets-rails 3.2.1
Installing sprockets-rails 3.2.1
Fetching rails 5.2.2
Installing rails 5.2.2
Fetching rbpdf-font 1.19.1
Installing rbpdf-font 1.19.1
Fetching rbpdf 1.19.7
Installing rbpdf 1.19.7
Fetching redcarpet 3.4.0
Installing redcarpet 3.4.0 with native extensions
Fetching request_store 1.0.5
Installing request_store 1.0.5
Fetching rmagick 2.16.0
Installing rmagick 2.16.0 with native extensions
Fetching roadie 3.4.0
Installing roadie 3.4.0
Fetching roadie-rails 1.3.0
Installing roadie-rails 1.3.0
Fetching rouge 3.3.0
Installing rouge 3.3.0
Bundle complete! 27 Gemfile dependencies, 59 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`

セッションストア秘密鍵の生成

Rails はセッションハイジャックを防ぐために、セッション情報を格納する cookie をエンコードする。
この処理で使われるランダムなキーを生成する。

$ bundle exec rake generate_secret_token

データベースのテーブル等の作成

データベース上に Redmine テーブルを作成する。

$ RAILS_ENV=production bundle exec rake db:migrate
== 1 Setup: migrating =========================================================
-- adapter_name()
   -> 0.0000s
〜省略〜
== 20180923091603 ChangeSqliteBooleansDefault: migrating ======================
== 20180923091603 ChangeSqliteBooleansDefault: migrated (0.0000s) =============

デフォルトデータの登録

デフォルトデータをデータベースに登録する。

$ RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
Default configuration data loaded.

Redmine の設定

Redmine からメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成する。

$ cp config/configuration.yml.example config/configuration.yml
$ vi config/configuration.yml
config/configuration.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: "tomoyan.net"
 
  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

Redmine の配置

$ sudo mkdir /var/www/vhosts/redmine.tomoyan.net
$ sudo mv /home/redmine/redmine-4.0.1 /var/www/vhosts/redmine.tomoyan.net/redmine
$ sudo chown redmine.redmine /var/www/vhosts/redmine.tomoyan.net/redmine -R

※ Passenger は config/environment.rb ファイルのオーナーでアプリを実行する。

Passenger のインストール

パーミッション設定(実行ユーザーのホームディレクトリの制限を緩める必要がある)

$ sudo chmod o+x /home/redmine

Redmine を実行するために使う Phusion Passenger をインストールする。

$ su - redmine
$ gem install passenger
Building native extensions. This could take a while...
Successfully installed passenger-6.0.1
Parsing documentation for passenger-6.0.1
Done installing documentation for passenger after 20 seconds
1 gem installed

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

$ passenger-install-apache2-module --auto --languages ruby
Welcome to the Phusion Passenger Apache 2 module installer, v6.0.1.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

--------------------------------------------

Which languages are you interested in?

Override selection with --languages.

 ‣ ⬢  Ruby
   ⬡  Python
   ⬡  Node.js
   ⬡  Meteor

--------------------------------------------

Warning: some directories may be inaccessible by the web server!

The web server typically runs under a separate user account for security
reasons. That user must be able to access the Phusion Passenger files.
However, it appears that some directories have too strict permissions. This
may prevent the web server user from accessing Phusion Passenger files.

It is recommended that you relax permissions as follows:

  sudo chmod o+x "/home/redmine"

Press Ctrl-C to return to the shell. (Recommended)
After relaxing permissions, re-run this installer.
  -OR-
Press Enter to continue anyway.

--------------------------------------------

Checking for required software...

 * Checking for C compiler...
      Found: yes
      Location: /usr/bin/cc
 * Checking for C++ compiler...
      Found: yes
      Location: /usr/bin/c++
 * Checking for Curl development headers with SSL support...
      Found: yes
      curl-config location: /usr/bin/curl-config
      Header location: somewhere, not sure where
      Version: libcurl 7.61.1
      Usable: yes
      Supports SSL: yes
 * Checking for Zlib development headers...
      Found: yes
      Location: true
 * Checking for Apache 2...
      Found: yes
      Location of httpd: /usr/sbin/httpd
      Apache version: 2.4.37
 * Checking for Rake (associated with /usr/bin/ruby)...
      Found: yes
      Location: /usr/bin/ruby /home/redmine/bin/rake
 * Checking for OpenSSL support for Ruby...
      Found: yes
 * Checking for RubyGems...
      Found: yes
 * Checking for Ruby development headers...
      Found: yes
      Location: /usr/include/ruby.h
 * Checking for rack...
      Found: yes
 * Checking for OpenSSL development headers...
      Found: yes
      Location: true
 * Checking for Apache 2 development headers...
      Found: yes
      Location of apxs2: /usr/bin/apxs
 * Checking for Apache Portable Runtime (APR) development headers...
      Found: yes
      Location: /usr/bin/apr-1-config
      Version: 1.6.5
 * Checking for Apache Portable Runtime Utility (APU) development headers...
      Found: yes
      Location: /usr/bin/apu-1-config
      Version: 1.6.1

--------------------------------------------

Checking whether there are multiple Apache installations...
Only a single installation detected. This is good.

--------------------------------------------
Compiling and installing Apache 2 module...
〜省略〜

Apache用の設定内容を確認する。

$ passenger-install-apache2-module --snippet
LoadModule passenger_module /home/redmine/.gem/ruby/gems/passenger-6.0.1/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /home/redmine/.gem/ruby/gems/passenger-6.0.1
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

Apache の設定

Apache のバーチャルホストの設定と Passenger の設定を行う。

$ sudo vi /etc/httpd/conf.d/redmine.tomoyan.net.conf
/etc/httpd/conf.d/redmine.tomoyan.net.conf
# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の5行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
#
LoadModule passenger_module /home/redmine/.gem/ruby/gems/passenger-6.0.1/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
    PassengerRoot /home/redmine/.gem/ruby/gems/passenger-6.0.1
    PassengerDefaultRuby /usr/bin/ruby
</IfModule>
 
# Passenger の実行ユーザーも redmine にする。
PassengerUserSwitching off
PassengerDefaultUser redmine
 
# Passengerが追加するHTTPヘッダを削除するための設定(任意)
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"
 
# 必要に応じてPassengerのチューニングのための設定を追加(任意)
# 詳しくはPhusion Passenger users guide を参照
# (http://www.modrails.com/documentation/Users%20guide%20Apache.html)
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0
 
<VirtualHost *:80>
    DocumentRoot "/var/www/vhosts/redmine.tomoyan.net/redmine/public"
    ServerName redmine.tomoyan.net
    # Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
    # Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
    <Directory "/var/www/vhosts/redmine.tomoyan.net/redmine/public">
        Require all granted
    </Directory>
 
    Header always unset "X-Powered-By"
    Header always unset "X-Runtime"
</VirtualHost>

Apache の設定チェック

Apache のシンタックスチェックを実行する。

$ sudo httpd -t
Syntax OK

Apache のリロード

$ sudo systemctl reload httpd.service

Redmine インストール後の初期設定

管理者パスワード変更

https://redmine.tomoyan.net/
admin でログインして管理者のパスワード変更を行う。
Redmine をインストールした直後であれば以下のユーザー名、パスワードでログイン出来る。

ログインID: admin
パスワード: admin

日本語での利用に適した設定

Redmineを日本語環境で使いやすいように設定する。

以下の設定を行う。

  • 「デフォルトの言語」を「日本語 (Japanese)」に設定
  • 「ユーザー名の表示形式」を姓が先に来るよう設定
  • リポジトリブラウザで文字コードの自動判別を設定

「デフォルトの言語」と「ユーザー名の表示形式」の設定

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「設定」をクリックする。
  3. 「表示」タブを開き、以下のように設定を行う。
    デフォルトの言語: Japanese(日本語)
    ユーザー名の表示形式: Tomo Yan
  4. 「保存」をクリックして設定を反映する。

リポジトリブラウザで文字コードの自動判別を設定

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「設定」をクリックする。
  3. 「ファイル」タブを開き、以下のように設定を行う。
    添付ファイルとリポジトリのエンコーディング: utf-8,cp932,euc-jp
  4. 「保存」をクリックして設定を反映する。

メールに含まれるRedmineのアドレスを正しく設定

ホスト名の設定

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「設定」をクリックする。
  3. 「全般」タブを開き、以下のように設定を行う。
    ホスト名とパス: redmine.tomoyan.net
    プロトコル: HTTPS
  4. 「保存」をクリックして設定を反映する。

プロトコルの設定

通常は HTTP、SSL で Redmine にアクセスする場合は HTTPS を選択する。

プロトコル: HTTPS

ユーザー追加のデフォルト設定

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「設定」をクリックする。
  3. 「ユーザー」タブを開き、以下のように設定を行う。
    タイムゾーン: (GMT+09:00) Sapporo
  4. 「保存」をクリックして設定を反映する。

リポジトリ追加のデフォルト設定

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「設定」をクリックする。
  3. 「リポジトリ」タブを開き、以下のように設定を行う。
    使用するバージョン管理システム
      [ ] Subversion
      [v] Mercurial
      [ ] Cvs
      [ ] Bazaar
      [ ] Git
      [v] Filesystem
  4. 「保存」をクリックして設定を反映する。

ユーザーの追加

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「ユーザー」をクリックする。
  3. ユーザー画面の右上にある「新しいユーザー」をクリックする。
  4. 新しいユーザー画面に新しいユーザーについての下記の情報を入力する。
    情報
      ログインID: tomoyan
      名: Yan
      姓: Tomo
      メールアドレス: tomoyan@tomoyan.net
      システム管理者: チェックを入れると Redmine の管理者として登録できる。
    
    認証
      パスワード: ********
      パスワードの確認: ********
    
    設定
      タイムゾーン: (GMT+09:00) Sapporo
      
    [v] アカウント情報をユーザーに送信
  5. 「作成」をクリックしてユーザー追加を反映する。

プロジェクトの追加

Redmine で業務を管理するためにはプロジェクトを作成する。

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「プロジェクト」をクリックする。
  3. プロジェクト画面の右上にある「新しいプロジェクト」をクリックする。
  4. 新しいプロジェクト画面に新しいプロジェクトについての下記の情報を入力する。
    名称: tomoyan プロジェクト
    説明: プロジェクトについての説明を入力する。
    識別子: Redmine 内部でプロジェクト識別するための名称を入力する。
  5. 「作成」をクリックする。

プロジェクトのメンバーを追加

Redmine のプロジェクトに追加されているユーザをそのプロジェクトのメンバーという。
この手順ではプロジェクトのメンバーを追加する。

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「プロジェクト」をクリックする。
  3. メンバーを追加したい「プロジェクト名称」をクリックする。
  4. 設定画面の「メンバー」タブをクリックして画面左上の「新しいメンバー」をクリックする。
  5. 追加するメンバーとロールを選び「追加」をクリックする。

プロジェクトのリポジトリを追加

この手順では Redmine のプロジェクトで管理するリポジトリを追加する。

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「プロジェクト」をクリックする。
  3. メンバーを追加したい「プロジェクト名称」をクリックする。
  4. 設定画面の「リポジトリ」タブをクリックして画面左上の「新しいリポジトリ」をクリックする。
  5. 新しいリポジトリの画面に以下の情報を入力する。
    バージョン管理システム: Mercurial
    識別子: tomoyan_project_repo
    リポジトリのパス: /var/hg/redmine_repos/tomoyan_project_repo
    パスのエンコーディング: UTF-8
  6. 「作成」をクリックしてリポジトリを作成する。

※ Redmine は hg init はしてくれないので自分でリポジトリを作成する必要がある。

$ ssh tomoyan@black-vps001 hg init /var/hg/redmine_repos/tomoyan_project_repo

作業分類の追加

この手順では Redmine の作業分類を追加する。

  1. 画面左上の「管理」をクリックする。
  2. 管理画面の「選択肢の値」をクリックする。
  3. 「選択肢の値」の画面で「作業分類 (時間管理)」の「新しい値」をクリックする。
  4. 「作業分類 (時間管理) » 新しい値」の画面に以下の情報を入力する。
    名称: 構築作業
    有効: [v]
  5. 「作成」をクリックして作業分類を作成する。

Mercurial と連携する場合

Mercurial をインストールする。

$ sudo dnf install mercurial

Mercurial の動作確認。

$ hg --version
Mercurial Distributed SCM (version 4.5.3)
(see https://mercurial-scm.org for more information)

Copyright (C) 2005-2018 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Redmine(Rails アプリ) の再起動方法

今までは restart.txt を touch していまいたが、

$ touch redmine/tmp/restart.txt

passenger-config を使う方法に変わりました。

$ su - redmine
$ passenger-config restart-app

Redmine のアップグレード

バックアップ

現在稼働している Redmine をバックアップする。

$ su - redmine
$ tar Jcvf /var/www/vhosts/redmine.tomoyan.net/20200626_redmine-4.0.3.tar.xz /var/www/vhosts/redmine.tomoyan.net/redmine/

データベースをバックアップする。

$ pg_dump redmine_db -U redmine -v -b > ~/20200626_redmine_db.dmp
$ tar Jcvf ~/20200626_redmine_db.dmp.tar.xz ~/20200626_redmine_db.dmp
$ rm ~/20200626_redmine_db.dmp

アップグレードの実行

パッケージのダウンロードと展開

ダウンロード — Redmine.JP から最新の Redmine(redmine-4.1.1.tar.gz) をダウンロードする。

$ su - redmine
$ curl -LO http://www.redmine.org/releases/redmine-4.1.1.tar.gz
$ tar zxvf redmine-4.1.1.tar.gz

データベースに接続するための設定

現在動いている Redmine からコピーしてくる。

$ cd redmine-4.1.1
$ cp /var/www/vhosts/redmine.tomoyan.net/redmine/config/database.yml config/database.yml

依存するソフトウェアのインストール

Bundlerをインストールする。

$ gem install bundler
Fetching bundler-2.1.4.gem
Successfully installed bundler-2.1.4
Parsing documentation for bundler-2.1.4
Installing ri documentation for bundler-2.1.4
Done installing documentation for bundler after 2 seconds
1 gem installed

Redmineを実行するために必要なすべてのgemをインストールする。

$ bundle install --path vendor/bundle --without development test
[DEPRECATED] The `--path` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set path 'vendor/bundle'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set without 'development test'`, and stop using this flag
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`.
The dependency ffi (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32`.
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies...
Fetching rake 13.0.1
Installing rake 13.0.1
Fetching concurrent-ruby 1.1.6
Installing concurrent-ruby 1.1.6
Fetching i18n 1.6.0
Installing i18n 1.6.0
Fetching minitest 5.14.1
Installing minitest 5.14.1
Fetching thread_safe 0.3.6
Installing thread_safe 0.3.6
Fetching tzinfo 1.2.7
Installing tzinfo 1.2.7
Fetching activesupport 5.2.4.2
Installing activesupport 5.2.4.2
Fetching builder 3.2.4
Installing builder 3.2.4
Fetching erubi 1.9.0
Installing erubi 1.9.0
Fetching mini_portile2 2.4.0
Installing mini_portile2 2.4.0
Fetching nokogiri 1.10.9
Installing nokogiri 1.10.9 with native extensions
Fetching rails-dom-testing 2.0.3
Installing rails-dom-testing 2.0.3
Fetching crass 1.0.6
Installing crass 1.0.6
Fetching loofah 2.6.0
Installing loofah 2.6.0
Fetching rails-html-sanitizer 1.3.0
Installing rails-html-sanitizer 1.3.0
Fetching actionview 5.2.4.2
Installing actionview 5.2.4.2
Fetching rack 2.2.3
Installing rack 2.2.3
Fetching rack-test 1.1.0
Installing rack-test 1.1.0
Fetching actionpack 5.2.4.2
Installing actionpack 5.2.4.2
Fetching nio4r 2.5.2
Installing nio4r 2.5.2 with native extensions
Fetching websocket-extensions 0.1.5
Installing websocket-extensions 0.1.5
Fetching websocket-driver 0.7.2
Installing websocket-driver 0.7.2 with native extensions
Fetching actioncable 5.2.4.2
Installing actioncable 5.2.4.2
Fetching globalid 0.4.2
Installing globalid 0.4.2
Fetching activejob 5.2.4.2
Installing activejob 5.2.4.2
Fetching mini_mime 1.0.2
Installing mini_mime 1.0.2
Fetching mail 2.7.1
Installing mail 2.7.1
Fetching actionmailer 5.2.4.2
Installing actionmailer 5.2.4.2
Fetching method_source 1.0.0
Installing method_source 1.0.0
Fetching thor 1.0.1
Installing thor 1.0.1
Fetching railties 5.2.4.2
Installing railties 5.2.4.2
Fetching actionpack-xml_parser 2.0.1
Installing actionpack-xml_parser 2.0.1
Fetching activemodel 5.2.4.2
Installing activemodel 5.2.4.2
Fetching arel 9.0.0
Installing arel 9.0.0
Fetching activerecord 5.2.4.2
Installing activerecord 5.2.4.2
Fetching mimemagic 0.3.5
Installing mimemagic 0.3.5
Fetching marcel 0.3.3
Installing marcel 0.3.3
Fetching activestorage 5.2.4.2
Installing activestorage 5.2.4.2
Fetching public_suffix 4.0.5
Installing public_suffix 4.0.5
Fetching addressable 2.7.0
Installing addressable 2.7.0
Using bundler 2.1.4
Fetching css_parser 1.7.1
Installing css_parser 1.7.1
Fetching csv 3.1.5
Installing csv 3.1.5
Fetching htmlentities 4.3.4
Installing htmlentities 4.3.4
Fetching mini_magick 4.9.5
Installing mini_magick 4.9.5
Fetching net-ldap 0.16.2
Installing net-ldap 0.16.2
Fetching pg 1.1.4
Installing pg 1.1.4 with native extensions
Fetching ruby-openid 2.9.2
Installing ruby-openid 2.9.2
Fetching rack-openid 1.4.2
Installing rack-openid 1.4.2
Fetching sprockets 4.0.2
Installing sprockets 4.0.2
Fetching sprockets-rails 3.2.1
Installing sprockets-rails 3.2.1
Fetching rails 5.2.4.2
Installing rails 5.2.4.2
Fetching rbpdf-font 1.19.1
Installing rbpdf-font 1.19.1
Fetching rbpdf 1.20.1
Installing rbpdf 1.20.1
Fetching redcarpet 3.5.0
Installing redcarpet 3.5.0 with native extensions
Fetching request_store 1.4.1
Installing request_store 1.4.1
Fetching roadie 4.0.0
Installing roadie 4.0.0
Fetching roadie-rails 2.1.1
Installing roadie-rails 2.1.1
Fetching rouge 3.12.0
Installing rouge 3.12.0
Bundle complete! 31 Gemfile dependencies, 59 gems now installed.
Gems in the groups development and test were not installed.
Bundled gems are installed into `./vendor/bundle`
Post-install message from i18n:

HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.

Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.

For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0

セッションストア秘密鍵の生成

Rails はセッションハイジャックを防ぐために、セッション情報を格納する cookie をエンコードする。
この処理で使われるランダムなキーを生成する。

$ bundle exec rake generate_secret_token

files を移行する

現在動いている Redmine から files ディレクトリをコピーする。

$ cp -rf /var/www/vhosts/redmine.tomoyan.net/redmine/files .

plugins を移行する

現在動いている Redmine から plugins ディレクトリをコピーする。

$ cp -rf /var/www/vhosts/redmine.tomoyan.net/redmine/plugins .

データベースのアップデート

データベースを新しい Redmine 用にアップデートする。

$ bundle exec rake db:migrate RAILS_ENV=production

プラグインをインストールしている場合は、以下も実行しておく。

$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production


データベースのアップデートで以下のエラーが出る場合は PostgreSQL の pg_hba.conf の設定を見直す。
OS をアップグレードしたばかりの場合など、以前に設定した pg_hba.conf の設定内容が置き換わっている事がある。

rake aborted!
PG::ConnectionBad: FATAL:  ユーザ"redmine"のIdent認証に失敗しました
$ sudo vi /var/lib/pgsql/data/pg_hba.conf
# "local" is for Unix domain socket connections only
local   all         all                               md5
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
$ sudo systemctl restart postgresql
$ su - redmine
$ cd redmine-4.0.3
$ bundle exec rake db:migrate RAILS_ENV=production

Redmine の設定

現在動いている Redmine からメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルをコピーする。

$ cp /var/www/vhosts/redmine.tomoyan.net/redmine/config/configuration.yml config/configuration.yml

Redmine の配置

現在動作している Redmine は用済みなので削除する。

$ rm -rf /var/www/vhosts/redmine.tomoyan.net/redmine

そして、新しい Redmine を配置する。

$ mv /home/redmine/redmine-4.1.1 /var/www/vhosts/redmine.tomoyan.net/redmine
$ exit
# chown redmine.redmine /var/www/vhosts/redmine.tomoyan.net/redmine -R

※ Passenger は config/environment.rb ファイルのオーナーでアプリを実行する。

Passenger も最新化する

Redmine を実行するために使う Phusion Passenger をインストールする。

$ su - redmine
$ cd ~
$ gem install passenger
Fetching passenger-6.0.2.gem
Building native extensions. This could take a while...
Successfully installed passenger-6.0.2
Parsing documentation for passenger-6.0.2
Installing ri documentation for passenger-6.0.2
Done installing documentation for passenger after 59 seconds
1 gem installed

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

$ passenger-install-apache2-module --auto --languages ruby
Welcome to the Phusion Passenger Apache 2 module installer, v6.0.2.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.

--------------------------------------------

Which languages are you interested in?

Override selection with --languages.

 ‣ ⬢  Ruby
   ⬡  Python
   ⬡  Node.js
   ⬡  Meteor

--------------------------------------------

Checking for required software...

 * Checking for C compiler...
      Found: yes
      Location: /usr/bin/cc
 * Checking for C++ compiler...
      Found: yes
      Location: /usr/bin/c++
 * Checking for Curl development headers with SSL support...
      Found: yes
      curl-config location: /usr/bin/curl-config
      Header location: somewhere, not sure where
      Version: libcurl 7.64.0
      Usable: yes
      Supports SSL: yes
 * Checking for Zlib development headers...
      Found: yes
      Location: true
 * Checking for Apache 2...
      Found: yes
      Location of httpd: /usr/sbin/httpd
      Apache version: 2.4.39
 * Checking for Rake (associated with /usr/bin/ruby)...
      Found: yes
      Location: /usr/bin/ruby /home/redmine/bin/rake
 * Checking for OpenSSL support for Ruby...
      Found: yes
 * Checking for RubyGems...
      Found: yes
 * Checking for Ruby development headers...
      Found: yes
      Location: /usr/include/ruby.h
 * Checking for rack...
      Found: yes
 * Checking for OpenSSL development headers...
      Found: yes
      Location: true
 * Checking for Apache 2 development headers...
      Found: yes
      Location of apxs2: /usr/bin/apxs
 * Checking for Apache Portable Runtime (APR) development headers...
      Found: yes
      Location: /usr/bin/apr-1-config
      Version: 1.6.5
 * Checking for Apache Portable Runtime Utility (APU) development headers...
      Found: yes
      Location: /usr/bin/apu-1-config
      Version: 1.6.1

--------------------------------------------

Checking whether there are multiple Apache installations...
Only a single installation detected. This is good.

--------------------------------------------
Compiling and installing Apache 2 module...
〜省略〜

Apache用の設定内容を確認する。

$ passenger-install-apache2-module --snippet
LoadModule passenger_module /home/redmine/.gem/ruby/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /home/redmine/.gem/ruby/gems/passenger-6.0.2
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

Apache の設定

Apache のバーチャルホストの設定と Passenger の設定を行う。

$ sudo vi /etc/httpd/conf.d/redmine.tomoyan.net.conf
/etc/httpd/conf.d/redmine.tomoyan.net.conf
# Passengerの基本設定。
# passenger-install-apache2-module --snippet で表示された設定を記述。
# 環境によって設定値が異なるため以下の5行はそのまま転記せず、必ず
# passenger-install-apache2-module --snippet で表示されたものを使用すること。
#
LoadModule passenger_module /home/redmine/.gem/ruby/gems/passenger-6.0.2/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
    PassengerRoot /home/redmine/.gem/ruby/gems/passenger-6.0.2
    PassengerDefaultRuby /usr/bin/ruby
</IfModule>
 
# Passenger の実行ユーザーも redmine にする。
PassengerUserSwitching off
PassengerDefaultUser redmine
 
# Passengerが追加するHTTPヘッダを削除するための設定(任意)
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"
 
# 必要に応じてPassengerのチューニングのための設定を追加(任意)
# 詳しくはPhusion Passenger users guide を参照
# (http://www.modrails.com/documentation/Users%20guide%20Apache.html)
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0
 
<VirtualHost *:80>
    DocumentRoot "/var/www/vhosts/redmine.tomoyan.net/redmine/public"
    ServerName redmine.tomoyan.net
    # Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定。
    # Apache 2.4のデフォルトではサーバ上の全ファイルへのアクセスが禁止されている。
    <Directory "/var/www/vhosts/redmine.tomoyan.net/redmine/public">
        Require all granted
    </Directory>
 
    Header always unset "X-Powered-By"
    Header always unset "X-Runtime"
</VirtualHost>

Apache の設定チェック

Apache のシンタックスチェックを実行する。

$ sudo httpd -t
Syntax OK

Apache のリロード

$ sudo systemctl reload httpd.service

トラブルシューティング

We're sorry, but something went wrong. エラーで動作しなくなった場合

Apache のエラーログを調べる。

$ sudo tail -f /var/log/httpd/error_log
[ E 2020-06-26 06:04:45.5702 683656/T8 age/Cor/Con/CheckoutSession.cpp:274 ]: [Client 1-103] Cannot checkout session because a spawning error occurred. The identifier of the error is 75cb1025. Please see earlier logs for details about the error.
App 1291063 output: Error: The application encountered the following error: There was an error while trying to load the gem 'rbpdf'.
App 1291063 output: Gem Load Error is: This installation of RMagick was configured with ImageMagick 6.9.10 but ImageMagick 6.9.11-18 is in use.
この RMagick のインストールは ImageMagick 6.9.10 で構成されましたが、ImageMagick 6.9.11-18 が使用されています。

Redmine 4.1.0 で RMagick は MiniMagick に置き換えられた。
これによりメモリー消費量が抑えられて、更に導入もしやすくなった。
MAEDA Go (@g_maeda) さんからの情報 - Twitter
Feature #30492: Replace RMagick with MiniMagick - Redmine

Redmine を最新にアップデートする。(Redmine 4.0.3 → 4.1.1)
詳細は Redmine のアップグレード を参照のこと。

$ sudo -s
# su - redmine
$ cat /var/www/vhosts/redmine.tomoyan.net/redmine/lib/redmine/version.rb
require 'rexml/document'

module Redmine
  # @private
  module VERSION
    MAJOR = 4
    MINOR = 0
    TINY  = 3
...

$ cd ~
$ tar Jcvf /var/www/vhosts/redmine.tomoyan.net/20200626_redmine-4.0.3.tar.xz /var/www/vhosts/redmine.tomoyan.net/redmine/
$ pg_dump redmine_db -U redmine -v -b > ~/20200626_redmine_db.dmp
$ tar Jcvf ~/20200626_redmine_db.dmp.tar.xz ~/20200626_redmine_db.dmp
$ rm ~/20200626_redmine_db.dmp
$ curl -LO http://www.redmine.org/releases/redmine-4.1.1.tar.gz
$ tar zxvf redmine-4.1.1.tar.gz
$ cd redmine-4.1.1
$ cp /var/www/vhosts/redmine.tomoyan.net/redmine/config/database.yml config/database.yml
$ gem install bundler
$ bundle install --path vendor/bundle --without development test
$ bundle exec rake generate_secret_token
$ cp -rf /var/www/vhosts/redmine.tomoyan.net/redmine/files .
$ cp -rf /var/www/vhosts/redmine.tomoyan.net/redmine/plugins .
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
$ cp /var/www/vhosts/redmine.tomoyan.net/redmine/config/configuration.yml config/configuration.yml
$ rm -rf /var/www/vhosts/redmine.tomoyan.net/redmine
$ mv /home/redmine/redmine-4.1.1 /var/www/vhosts/redmine.tomoyan.net/redmine
$ exit
# chown redmine.redmine /var/www/vhosts/redmine.tomoyan.net/redmine -R

参考文献

ruby/redmine_install.txt · 最終更新: 2020/06/26 17:44 by ともやん