0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

7.5 プロのデプロイ

Posted at

デプロイの下準備として、まずはこの時点までの変更をmasterブランチにマージ

$ git add -A
$ git commit -m "Finish user signup"
$ git checkout master
$ git merge sign-up

SSLを有効化

本番環境ではSSLを使うように修正する

config/environments/production.rb
Rails.application.configure do
  .
  .
  .
  # Force all access to the app over SSL, use Strict-Transport-Security,
  # and use secure cookies.
  config.force_ssl = true
  .
  .
  .
end

config.force_sslをtrueに設定するだけ

次に、遠隔にあるサーバーのSSLをセットアップします。本番用のWebサイトでSSLを使えるようにするためには、ドメイン毎にSSL証明書を購入し、セットアップする必要がある
それは、Heroku上でサンプルアプリケーションを動かし、HerokuのSSL証明書に便乗する方法
ただし、この方法はHerokuのサブドメインでのみ有効です。独自ドメインを使う場合はSSL証明書を購入する必要がある

###7.5.2 本番環境用のWebサーバー

番環境のWebサーバー設定ファイル

config/puma.rb
# Pumaの設定ファイル
max_threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }
min_threads_count = ENV.fetch("RAILS_MIN_THREADS") { max_threads_count }
threads min_threads_count, max_threads_count
port        ENV.fetch("PORT") { 3000 }
environment ENV.fetch("RAILS_ENV") { ENV['RACK_ENV'] || "production" }
pidfile ENV.fetch("PIDFILE") { "tmp/pids/server.pid" }
workers ENV.fetch("WEB_CONCURRENCY") { 2 }
preload_app!
plugin :tmp_restart

umaが使うようにProcfileで定義する

./Procfile
web: bundle exec puma -C config/puma.rb

##7.5.3 本番データベースを設定する

更新が必要なのは、データベース設定ファイルconfig/database.ymlのproductionセクションだけ

データベースを本番向けに設定する

config/database.yml
# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: sqlite3
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

# 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:
  <<: *default
  database: db/test.sqlite3

production:
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see Rails configuration guide
  # https://railsguides.jp/configuring.html#データベース接続をプールする
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  database: sample_app_production
  username: sample_app
  password: <%= ENV['SAMPLE_APP_DATABASE_PASSWORD'] %>

###7.5.4 本番環境へのデプロイ
$ rails test
$ git add -A
$ git commit -m "Use SSL and the Puma webserver in production"
$ git push && git push heroku

##最後に
・今後
認証(authentication)システムを導入し、ユーザーがログインとログアウトをできるようにします
ユーザーも自分のアカウント情報を更新できるようにし、Webサイトの管理者がユーザーを削除できるようにします

##まとめ
・debugメソッドを使うことで、役立つデバッグ情報を表示できる

・Sassのmixin機能を使うと、CSSのルールをまとめたり他の場所で再利用できるようになる

・Railsには標準で3つ環境が備わっており、それぞれ開発環境(development)、テスト環境(test)、本番環境(production)と呼ぶ

・標準的なRESTfulなURLを通して、ユーザー情報をリソースとして扱えるようになった

・Gravatarを使うと、ユーザーのプロフィール画像を簡単に表示できるようになる

・form_withヘルパーは、Active Recordのオブジェクトに対応したフォームを生成する

・ユーザー登録に失敗した場合はnewビューを再描画するようにした。その際、Active Recordが自動的に検知したエラーメッセージを表示できるようにした

・flash変数を使うと、一時的なメッセージを表示できるようになる

・ユーザー登録に成功すると、データベース上にユーザーが追加、プロフィールページにリダイレクト、ウェルカムメッセージの表示といった順で処理が進む

・統合テストを使うことで送信フォームの振る舞いを検証したり、バグの発生を検知したりできる
セキュアな通信と高いパフォーマンスを確保するために、本番環境ではSSLとPumaを導入した

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?