Redmine 4.0 を Ubuntu 18.04 LTS Server にインストールする手順

どうも、TOMOZO(@TOMOZO)です。

最小構成でインストールしたUbuntu 18.04.1 LTS ServerにRedmine 4.0をインストールする手順です。意外と情報が少ないんだよね・・。

スポンサーリンク

サーバー環境

Redmine以外は基本的にOS標準のパッケージで足りていることを想定しています。

ソフトウェアパッケージ
OSUbuntu 18.04.1 LTS Server
RedmineRedmine 4.0 stable
データベース
MySQL 5.7.26
WebサーバーApache 2.4.18 (PassengerでRails実行)
Ruby2.5.1

OSの設定

OSインストール直後、パッケージの最新化、日本語設定。

sudo locale-gen ja_JP.UTF-8
sudo update-locale LANG=ja_JP.UTF-8
sudo dpkg-reconfigure tzdata
sudo apt update
sudo apt upgrade -y
sudo apt-get dist-upgrade

必要なパッケージをインストールする

一応、Redmine 4.0に必要なRubyがOS標準で入手可能か確認する。公式によると Redmine 4.0 の場合、Ruby 2.2.2 以降、Rails 5.2 が必須。

sudo apt update
apt-cache madison ruby
#ruby |    1:2.5.1 | http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
sudo apt install ruby-dev ruby bundler apache2 libapache2-mod-passenger imagemagick libmagick++-dev subversion mysql-server libmysqlclient-dev
#ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux-gnu]

MySQLの設定

文字コードの設定、ユーザーとデータベースの設定。

sudo vi /etc/mysql/conf.d/redmine.cnf
sudo chmod 644 /etc/mysql/conf.d/redmine.cnf

↓↓↓redmine.cnf

[mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
innodb_large_prefix = 1
character-set-server = utf8mb4
skip-character-set-client-handshake
collation-server = utf8mb4_general_ci
init-connect = SET NAMES utf8mb4

[mysql]
default-character-set = utf8mb4

[client]
default-character-set = utf8mb4

[mysqldump]
default-character-set = utf8mb4

mysql_secure_installationでrootのパスワード等、MySQLをインストールする。

sudo mysql_secure_installation
sudo service mysql restart
sudo mysql -uroot -p

ここからMySQLのコマンドプロンプト上で。
Redmine用のデータベースを”redmine”という名前で作成し、localhostのredmineというユーザー(パスワード”redmine”)にredmineデータベースへのすべての権限を与える、という設定

set global validate_password_length=6; # 文字列の長さを変更
set global validate_password_policy=LOW; # ポリシーを変更
show variables like 'validate_password%';
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Redmineの設定

Redmineアプリケーション実行用のフォルダを作成し、オーナーとグループをwww-dataに設定する。
(apacheプロセスがRedmine環境のユーザーになるため、apacheプロセスへのアクセス権を与える)

sudo mkdir -p /var/www/redmine
sudo chown www-data:www-data /var/www/redmine
sudo -u www-data svn co http://svn.redmine.org/redmine/branches/4.0-stable /var/www/redmine
sudo -u www-data vi /var/www/redmine/config/database.yml

database.ymlの[production]を以下のように設定する。

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "redmine"
  encoding: utf8mb4
  charset: utf8mb4
  collation: utf8mb4_general_ci
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  socket: /var/run/mysqld/mysqld.sock

メールの設定は /var/www/redmine/config/configuration.ymlを更新する必要があるが、ここでは省略します・・。
更に、 MySQLをutf8mb4で利用するにあたってファイルを1つ追加する必要があります。

sudo -u www-data vi /var/www/redmine/config/initializers/utf8mb4.rb
module Utf8mb4
  def create_table(table_name, options = {})
    table_options = options.merge(options: 'ENGINE=InnoDB ROW_FORMAT=DYNAMIC')
    super(table_name, table_options) do |td|
      yield td if block_given?
    end
  end
end

ActiveSupport.on_load :active_record do
  module ActiveRecord::ConnectionAdapters
    class AbstractMysqlAdapter
      prepend Utf8mb4
    end
  end
end

Redmineのインストール

依存パッケージのインストールと、データベース構築など。

sudo chown -R www-data:www-data /var/www/redmine
cd /var/www/redmine/
sudo gem update bundler
sudo apt-get remove bundler
sudo -u www-data bundle install --without development test postgresql sqlite --path vendor/bundle
sudo -u www-data bundle exec rake generate_secret_token
sudo -u www-data RAILS_ENV=production bundle exec rake db:migrate
sudo -u www-data RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

ApacheとRails連携のためのpassengerの設定

sudo vi /etc/apache2/mods-available/passenger.conf

↓↓↓ passenger.conf

<IfModule mod_passenger.c>
  PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
  PassengerDefaultRuby /usr/bin/ruby
  PassengerPreStart http://127.0.0.1:80/redmine/
</IfModule>

IPアドレスやポートは適宜変更する。

Apache上でRedmineを動作させる設定

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

↓↓↓ redmine.conf

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

    ServerAdmin redmine@redmine.com
    DocumentRoot /var/www/html

    RackBaseURI /redmine
    PassengerHighPerformance on
    <Directory /var/www/redmine/public>
#        Require ip ::1 127. 192.168.
        AllowOverride None
        Options None
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
RailsEnv production
RailsBaseURI /redmine

IPアドレスやポートは適宜変更する。

sudo ln -s /var/www/redmine/public /var/www/html/redmine
sudo a2ensite redmine

Apacheを再起動して運用開始!!

sudo systemctl reload apache2

ブラウザからhttp://127.0.0.1:80/redmine/ にアクセスしてRedmineのページが表示されれば作業完了です!

Redmineをアップデートする手順(Ubuntu 18.04 LTS Server)

2019.09.10

スポンサーリンク