Rails初心者が本番環境立ち上げるまでに大いにハマる
Webサービス作るというのは、実に多くの事象が絡み合います。今回は
- Rails
- Nginx
- unicorn
- https接続
という条件で環境構築を行いたい。
この時点で初めて触るのがRailsの立ち上げとunicornの設定。
Nginxとhttps接続については以前やったことがあるのでなんとなく分かってはいたものの、この組み合わせのリファレンスがあまり存在しなくて大いにハマることになりました。
Webサービス作ってみましょうみたいな事をちらっとでも考えた人の内、この環境づくりにめげずに取り組めた人だけがその先に行けるというのはちょっとハードル高すぎやしませんかねぇと思う訳ですが。仕方がありませんね
参考にしたページ
- nginx + unicorn + Rails でサイトをつくる
- [rails][/rails]production環境のdatabase.ymlでハマったこと(環境変数設定)
- secret_key_baseあたりのメモ
1はドンピシャな環境でした。Nginx + unicorn + Rails & httpsです。
Nginxのconfファイルの設定とunicorn.rbの設定は、パスだけ自分の環境に合わせれば動きます。https接続は問題なさそうですよという所までこれると思いますが、これだけやっても真っ白なページが表示されるだけです。エラーログを見てみると、データベースのアクセスでこけている事がわかります。そりゃそうです、何も設定してないのですから。
そこで2番のサイトを参考にします。データベースの接続設定をファイルに書くのですが、Railsはパスワードは環境変数で設定するんですね。WordpressやらCake PHPやらでは直接パスワードをファイルに書き込むタイプの仕組みしか触ったことが無かったので、なるほどなと。環境変数にデータベース接続パスワードを載せれば、データ接続がコケるよエラーは消えます。
でもまだ真っ白です。なんだろうと思ってまたエラーログを見てみると、secret_key_baseが設定されてないよと書かれていました。なるほど、本番環境にはそれも必要なんだな。で、3番のサイトをみてみると、これも環境変数に載せてしまえと書かれています。まあそれで良いんじゃないだろうかということで、設定してみます。
ここまできてサイトを立ち上げてみると、ちゃんとhttps://foobaa.comでRailsのエラーページが現れますよ。一段落。
