遅まきながら、Vagrant(Virtualbox)でRuby on Railsのローカル環境を構築してみたの巻(その3)

Date:

Share post:

前回は、pumaを常時起動のユーザーサービスとして登録し

http://XXX.XXX.XXX.XXX/

でWelcome画面が表示されるところまでを行いました。

今回はまず、URLをIPアドレスから仮想ホストのドメインに変更します。
ローカル環境ですので、ホストPCのhostsファイルに以下を追加します。

[/etc/hosts]
XXX.XXX.XXX.XXX rails-test.com

http://rails-test.com/ を表示させてみましょう。

少々インパクトのあるエラー画面が表示されました・・・。
これは調べてみますと、Rails6からDNSリバインディング攻撃を防止する実装が行われており、
Rails.application.config.hosts に登録されていないホストからの接続の場合にエラーになるようです。

前回の最後に記載しましたが、pumaはdevelopmentモードで起動しています。
これを対応する場合は、developmentモードですので
config/environments/development.rb に

[config/environments/development.rb]
Rails.application.configure do
config.hosts << "rails-test.com" ← この行追加
          ・
          ・
          ・
end

と追記します。

追記後に、pumaを再起動します。
http://rails-test.com/ を表示させてみると

表示されますね!

Railsでは、以下環境に切り分けることができるそうです。

・production(本番環境)
・development(検証環境)
・test(テスト環境)

せっかくなのでproductionモードで再起動してみます。
その場合は、以下のように修正します。

[/usr/lib/systemd/system/puma.service(本番環境モードに変更)]
[Unit]
Description=Rails APP Server
After=network.target
[Service]
User=rails-test
WorkingDirectory=/home/rails-test/test_app
ExecStart=/home/rails-test/.rbenv/shims/bundle exec puma -e production ← ここ
Restart=always
[Install]
WantedBy=multi-user.target

修正後に「今すぐ再起動」ボタンを押下して、pumaを再起動します。
http://rails-test.com/ でWelcome画面が・・・表示されませんね。

これはproductionモードになったため、デフォルトではWelcome画面が表示されないようになっているためです。
表示させたい場合は、以下のファイルを修正します。

[/home/rails-test/test_app/config/routes.rb]

Rails.application.routes.draw do
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
# Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500.
# Can be used by load balancers and uptime monitors to verify that the app is live.
get "up" => "rails/health#show", as: :rails_health_check
# get '/rails/info/properties' => "rails/info#properties" ← ※1
# get '/rails/info/routes' => "rails/info#routes" ← ※2
# get '/rails/info' => "rails/info#index" ← ※3
root to: "rails/welcome#index" ← Welcome画面
# Defines the root path route ("/")
# root "posts#index"
end

※1〜3は、developモードの場合にroute等の情報をブラウザ画面で確認可能にするルーティングです。
productionモードのためコメントアウトしています。

productionモードのドキュメントルートの時にWelcome画面を表示するようにルーティングしています。
修正後にpumaを再起動します。再起動後に
http://rails-test.com/ でWelcome画面が表示されました!

3回に渡り、とりあえずローカル環境の構築〜Rails環境のインストール〜Welcome画面の表示までを行いました。
ローカル環境ができましたので、Ruby on Railsの学習をしていこうと思います・・・。

Related articles

Laravel Filamentを使用した管理画面...

以前触ったことがあるLarav...

LaravelでPDF生成(mpdf)

EC関連のシステムなどでは請求書や領...

我流Flutter学習ステップ(6)スマホでの動作...

本シリーズ(?)の最初の投稿で書いた...

その「平均値」に意味はあるのか?

最近「平均」に関して思うところがあっ...