RedmineをKUSANAGIで動かす!その2(宮崎悟氏)

宮﨑悟

今回紹介するのは、「KUSANAGI for Vagrant」上でのRedmineのインストール方法です。インストール手順やMySQL、NGINXの設定変更、Redmineのデプロイ情報などを詳しく解説します。また、SSL証明書の取得方法やサーバー再起動後のアクセス方法、初期ログイン情報も紹介します。プロジェクト管理ツール・Redmineを試してみたい方にはお勧めの記事です。記事の最後では、Redmineでプロジェクト管理が可能になるまでの流れを一通り追っています。

KUSANAGIでRailsを使ってみよう

前回は、KUSANAGI for Vagrant上でRails環境を作成してみました。
今回は、その上でRedmineをインストールしてみようと思います。

Redmineインストール

redmineのインストールを行います。以下のコマンドを実行することでインストール完了です。

# cd /home/kusanagi
# rm –rf redmine
# git clone –b 3.4-stable https://github.com/redmine/redmine.git
# chown -R kusanagi:kusanagi redmine
# cd redmine
# chown -R httpd:www tmp files public/plugin_assets
# mkdir -m 775 log/nginx log/httpd
# chown -R kusanagi:www log
# chmod 775 log

MySQL設定

Redmineで文字コードがutf8mbのとき、indexが長過ぎるため、InnoDBの設定を以下のように修正し、mysqlを再起動します。
# systemctl stop mysql
# awk '{print} /innodb_thread_concurrency = 8/ {printf "innodb_file_format = Barracuda\ninnodb_file_per_table = 1\ninnodb_large_prefix = 1\n"}' /etc/my.cnf.d/server.cnf > /tmp/server.cnf
# systemctl start mysql

NGINX設定

KUSANAGIのRails環境で使用するPassengerのオーナー・グループを変更するため、/etc/nginx/conf.d下のredmine_http.conf と redmine_ssl.conf の赤字の部分を加えます。また、production環境で実施するため、rails_env production; の行のコメントアウトをはずし、rails_env develoment;の行をコメントアウトします。

                passenger_ruby /usr/local/bin/ruby;
                passenger_min_instances 6;
                passenger_user httpd;
                passenger_group www;
 
#               rails_env development;
                rails_env production;
                #rails_env production;
また、rails環境でLet’s encryptを使用する場合は、ディレクトリ /var/www/html/.well-knownを作成後、以下の行をredmine_ssl.confの「location ~ /fcache-purge/([^/]+)(/.*) {」 の前の行に加えてください。

        location ~* /\.well-known {
                Alias /var/www/html/.well-known;
        }
その後、NGINXの再起動を行ってください。 Let’s EncryptでSSL証明書を手動する場合、以下のように手動でcertbot を起動してください。

# /usr/local/certbot/certbot-auto --text --noninteractivce --webroot -w /var/www/httpd -m メールアドレス -d ドメイン名 --agree-tos

Redmineデプロイ

Redmine用にDBの設定を変更します。

# sed -e "s/database: .*$/database: $DBNAME/" -e "s/username: .*$/username: $DBUSER/" -e "s/password: .*$/password: \"$DBP
ASS\"/"  -e "s/encoding: .*$/encoding: utf8mb4/" config/database.yml.example > config/database.yml
railsでINNODBの文字コードとしてutf8mb4を使用するため、以下の内容のファイルconfig/initializers/ar_innodb_row_format.rb を作成します。

# cat < config/initializers/ar_innodb_row_format.rb
ActiveSupport.on_load :active_record do
  module ActiveRecord::ConnectionAdapters
    class AbstractMysqlAdapter
          def create_table_with_innodb_row_format(table_name, options = {})
            table_options = options.merge(:options => 'ENGINE=InnoDB ROW_FORMAT=DYNAMIC')
        create_table_without_innodb_row_format(table_name, table_options) do |td|
          yield td if block_given?
        end
      end
    alias_method_chain :create_table, :innodb_row_format
    end
  end
end
EOF
最後に、redmineをデプロイします。Logはhttpd:wwwにオーナー・グループを変えておきましょう。

# bundle install --without development test postgresql sqlite3
# rake generate_secret_token
# RAILS_ENV=production rake db:migration
# RAILS_ENV=production rake db:migrate
# echo ja | RAILS_ENV=production rake redmine:load_default_data
# find /home/kusanagi/redmine/log -name '*.log' | xargs chown httpd:www
サーバを再起動し後、Webブラウザで、redmineサーバへアクセスしてみましょう。上記で$SITE_DOMAINに設定したホスト名でアクセスします。
ログインボタンを押して、ユーザ名「admin」、パスワード「admin」でログインできます。 すぐに、パスワードを変更する画面が移りますので、パスワードを変更してください。
これで、Redmineでプロジェクト管理できる状態になりました。Redmine詳しい使用方法は、Redmineのサイトを参照してください。 では、次回をお楽しみに。

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解