Railsチュートリアルのセットアップ関連だけ要約


Railsチュートリアルをようやく一周しました。
次の段階として、Railsチュートリアルを参考にしながらオリジナルのWebサービスを作ってみるために、セットアップ関連だけまとめています。
開発環境はCloud9です。

Rails環境の構築

便利コマンド

普段からドキュメントをインストールしないように指定するコマンド(らしい)。
参考にさせていただきました。
Railsチュートリアル第1章の「$ printf "install: --no-document \nupdate: --no-document\n" >> ~/.gemrc」を分解

$ printf "install: --no-document \nupdate:  --no-document\n" >> ~/.gemrc

Railsインストール

今回、バージョンはチュートリアルのままとしたが、いずれバージョンアップもやっておかないと。。。

$ gem install rails -v 5.1.6

rails newの実行

$ rails _5.1.6_ new "タイトル"

GitHub環境の構築

gitの生成

$ cd ~/envronment/"タイトル"
$ git init
$ git add -A
$ git commit -m "Initialize repository" # コメントは定番のもの

リポジトリの作成(GitHub)

GitHub上で 'New repository'してリポジトリを作成後、以下コマンドを実行(URLはリポジトリ作成画面に記載)

$ git remote add origin "URL"
$ git push -u origin master

# uオプションをつけて、origin masterを上流ブランチとして設定
# 次回以降、git pushのみでorigin masterへのpushが可能

リポジトリを非公開としたい場合は、Settingの一番下'Danger Zone'内にあるMake privateをクリック

SSH 公開鍵の設定(GitHub)

$ cd ~/.ssh          # 鍵を入れるフォルダに移動
$ ssh-keygen -t rsa  # 鍵を生成
$ cat id_rsa.pub     # 鍵の中身を表示して手動でコピー

# cloud9ではpbcopyが使用できなかったので、手動でコピーしています。

https://github.com/settings/ssh で公開鍵を設定
以下コマンドで接続を確認し、以下コメントが出れば接続完了。

Hi (account名)! You've successfully authenticated, but GitHub does not provide shell access.

参考にさせていただきました。
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~

警告がでた場合の対処方法

以下のような警告が出る場合があります(僕は出ました)。
Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.x' to the list of known hosts.

pushができなくなるわけではないので問題はなさそうですが、Worningがでているのは気持ち悪い。。。
以下コマンドでknown_hostsの内容が更新されてWorningがでなくなります。

$ ssh-keygen -R "IPアドレス"

# 上記で直らない場合は、以下コマンドも試してみてください

$ ssh-keygen -R github.com
push時に毎回パスワードを聞かれないための方法
  1. GitHubのCode画面の右側"Clone or download"ボタンをクリック
  2. 右上の"Use SSH"をクリックし、表示されたURLをコピー
  3. ターミナルから以下コマンドを実行
$ git remote set-url origin "URL"

# 確認のため以下を実行
$ git remote -v

#以下のように、[email protected]から始まっていれば成功!
origin  [email protected]:reiji012-pg/Tabetter.git (fetch)
origin  [email protected]:reiji012-pg/Tabetter.git (push)

Herokuのセットアップ

ここもひとまずチュートリアルのままで。
本番環境のみにPostgreSQLのgemをインストール

Gemfile.
group :production do
  gem 'pg', '0.20.0'
end

開発環境とテスト環境にSQLiteのgemをインストール

Gemfile.
group :development, :test do
  gem 'sqlite3', '1.3.13'
  gem 'byebug',  '9.0.6', platform: :mri
end

pg gemを本番環境にインストールしないようにオプションを追加してインストール

$ bundle install --without production

Herokuをインストール

$ source <(curl -sL https://cdn.learnenough.com/heroku_install)

インストールを確認後、ログインからデプロイまで。

$ heroku --version
$ heroku login --interactive
$ heroku keys:add
$ heroku create
$ git push heroku master

以下コマンドでアプリケーションの名称を変更可能

$ heroku rename "アプリケーション名"

Herokuコマンドが使えなくなっている問題

ターミナルを起動する度にHerokuの設定が消えてしまう
herokuへのパスを書いたファイルを、ターミナルの起動毎に実行するように設定することで解消可能
以下いずれも、viコマンドでファイル内の一番下に挿入する

~/.bashrc
PATH=/usr/local/heroku/bin:$PATH
~/.bash_profile
source ~/.bashrc

本番環境でのSSL設定

以下ファイルを修正(コメントアウトしているので、コメントを解除するだけ)

config/environments/production.rb
config.force_ssl = true

HerokuのWebサーバを、デフォルトのWEBrickからPumaに置き換える
(著しいトラフィックを扱うことができず、本番環境に適していないため)

こちらもコメントアウトしているものを解除するだけ

config/puma.rb
on_worker_boot do
  ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
end

こちらはファイルを新規作成(./Procfile)

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

とりあえずこれでアプリケーションの作成に入っていける環境が構築できたかと思います。