ねこものがたり

いちにちいっぽ

サーバーでRailsアプリを動かすための手順

今まで一応デプロイはHerokuでしたことはありました。 いよいよもっとちゃんと根本的にデプロイを理解することになり、初めてやる作業が多かったのでまとめておきます。

環境

[サーバー]
さくらのVPS Debian9

この前サーバーレンタルしたばっかりでMacSSH接続したぞ、くらいの感じ。

アプリをサーバーに持ってくる

イメージ

f:id:neko314:20180603110726j:plain

ローカル⇆Github
GitHub⇆サーバー
それぞれの間をうまく繋いぐように順番に操作していけばいい。

ローカル)⇆Github

これは特になんと言うこともない通常のあれ。

GitHub⇆サーバー

ここが初めてだったので、ちょっと操作に時間がかかりました。ゆっくり冷静にやればできたので、次からはもう少しスムーズにやれたらなと思います。

1.サーバーからGitHubリポジトリにアクセスするための認証を行う

SSH鍵認証を使う。ここではサーバーがクライエント、GitHubがリモート。

やり方としては、

  1. SSH接続の鍵認証についてssh接続を鍵認証で行う←このページのうち「クライアントにキーペアを登録」までをやる。

  2. GitHubのヘルプページ: Managing deploy keys | GitHub Developer GuideリポジトリのDeployKeyを登録する。1.で作った公開鍵(~~.pubって言う名前のファイル)の中身をコピペする。

  3. クライエントにリポジトリをcloneする。2.まで終えた後初回接続時に確認の画面が出る時、それはよしなに対処する。参照: SSHサーバのRSA fingerprintの確認方法 | server-memo.net

2. Railsアプリのあれこれを整える

異なる環境(Macとサーバー)でアプリケーションを動かすためにはcloneしただけではダメみたい。って知ってたけど、実際やってみる「なるほど、そう言うことか」と思いました。

  • gemをbundle installする

リポジトリをcloneすると言うことはGemfileもあると言うことだけれど、Gemfileがあるだけではgemがないままなので、インストールしないといけません。

この時に何かとエラーが出てたんですが、エラーメッセージに必要なgemや参照すると良いページが示されていたので、エラーとはいえそんなに苦しくはなかったです。

  • db:migrateする

データーベースも同じように新しい環境にファイルを置いただけでは実際のテーブルがまだない状態なので、rails db:migrateも実行します。

その後rails cなどでUsers.countなど簡単な操作を実行してみて問題ないことを確認〜( ・∇・)

上記まで終わったらrails serverも動くでしょ〜と思ったら、なんとエラーが出ました。

`rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError)

bundle installはできてるし、何がダメなのかわからなかったのでこのメッセージをそのままググってみました。 そうしたらたくさんの検索結果が出てきたので、みなさんよく出くわす模様。

そのなかで参考にした記事: There was an error while trying to load the gem 'uglifier'. rails でこんなこと言われたら

その後なんとかrails serverが起動しました٩( 'ω' )و

次はNginxとPumaを使ってアプリが動かせるように設定をしていきます。また記事に残したいと思います!