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

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

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のサイトを参照してください。 では、次回をお楽しみに。

KUSANAGI TIPSカテゴリの最新記事