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