今まで一応デプロイはHerokuでしたことはありました。 いよいよもっとちゃんと根本的にデプロイを理解することになり、初めてやる作業が多かったのでまとめておきます。
環境
[サーバー]
さくらのVPS
Debian9
この前サーバーレンタルしたばっかりでMacとSSH接続したぞ、くらいの感じ。
アプリをサーバーに持ってくる
イメージ
ローカル⇆Github
GitHub⇆サーバー
それぞれの間をうまく繋いぐように順番に操作していけばいい。
ローカル)⇆Github
これは特になんと言うこともない通常のあれ。
GitHub⇆サーバー
ここが初めてだったので、ちょっと操作に時間がかかりました。ゆっくり冷静にやればできたので、次からはもう少しスムーズにやれたらなと思います。
1.サーバーからGitHubリポジトリにアクセスするための認証を行う
SSH鍵認証を使う。ここではサーバーがクライエント、GitHubがリモート。
やり方としては、
SSH接続の鍵認証についてssh接続を鍵認証で行う←このページのうち「クライアントにキーペアを登録」までをやる。
GitHubのヘルプページ: Managing deploy keys | GitHub Developer Guide←リポジトリのDeployKeyを登録する。1.で作った公開鍵(~~.pubって言う名前のファイル)の中身をコピペする。
クライエントにリポジトリを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 sしてみる
上記まで終わったら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を使ってアプリが動かせるように設定をしていきます。また記事に残したいと思います!