質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.32%

  • Ruby on Rails 4

    2465questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

rails4で開発環境から本番環境に移行できない

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 227

koichi8888

score 14

 前提・実現したいこと

rails4の開発環境で作成したアプリを本番環境にデプロイしたいです。

実施手順としては下記になります。

①railsの本番環境構築時に動作確認として/public/index.htmlの内容が表示されることを確認し、動作確認完了

②DB作成し、開発環境と同じ構成でモデル、テーブルを作成

③開発環境のファイルを本番環境にコピー

④動作確認

トップページアクセス(http://<サーバIP>)した際に/public/index.htmlの内容が表示されます。
アクセスしたいのはview/<コントローラ名>/index.htmlになります。
おそらく、rails側の設定で本番環境を利用する場合の手順が足りないと思っているのですが、
capistranoというgemを利用した手順しか見当たらず、困っています。
デプロイに関しては上記のgemの利用が必須ということでしょうか。

 発生している問題・エラーメッセージ

/public/index.htmlをリネームした際に発生
⇒public配下のindex.htmlの読み込みがview内のindex.htmlより、優先されて可能性を確認するため。
/var/log/httpd/error_log

[ W 2018-07-09 12:30:30.8573 1717/T7 age/Cor/Con/InternalUtils.cpp:96 ]: [Client 1-10] Sending 502 response: application did not send a complete response
App 2832 output: [ 2018-07-09 12:30:40.3155 2832/0x00007f09d28a2770(Worker 1) utils.rb ]: *** Exception RuntimeError in Rack application object (Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`) (process 2832, thread 0x00007f09d28a2770(Worker 1)):
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.2.9/lib/rails/application.rb:534:in `validate_secret_key_config!'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.2.9/lib/rails/application.rb:246:in `env_config'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.2.9/lib/rails/engine.rb:514:in `call'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.2.9/lib/rails/application.rb:165:in `call'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb:97:in `process_request'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3/src/ruby_supportlib/phusion_passenger/request_handler.rb:415:in `block (3 levels) in start_threads'
App 2832 output:        from /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.3.3/src/ruby_supportlib/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'
[ W 2018-07-09 12:30:40.3159 1717/T7 age/Cor/Con/InternalUtils.cpp:96 ]: [Client 1-11] Sending 502 response: application did not send a complete response

 試したこと

・rails routesでルーティングの設定は開発環境と同じように設定されていることを確認
・public/index.htmlをリネームし、view内のファイルを表示させようとしたところ、Incomplete response received from applicationと表示される。error_logに記載の通り、秘密鍵の設定ができていない旨のエラーですが、本番環境構築時の動作確認時に表示され、該当の設定したことで事象は解消され、public/index.htmlの表示がされることを確認しました。そのため、秘密鍵の設定は問題ないと思っています。

 補足情報(FW/ツールのバージョンなど)

OS:Centos6.9
フレームワーク : Rails 4.2.9
Web:apache 2.2
DB : MySQL 5.6 
ruby:2.3.7
Phusion Passenger: 5.3.3

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

Missing secret_token and secret_key_base for 'production' environment, set these values in config/secrets.yml

まずはこのエラーメッセージに書いてあることが解決できればいいのでは…?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/09 13:49

    ご回答ありがとうございます。上記のエラーの件ですが、環境構築時の動作確認で秘密鍵の設定をconfig/secrets.ymlに設定することで解決し、記載しているのはpublic/index.htmlをリネームした際に発生し、リネームを戻せば、エラーは発生しないです。そのため、上記のエラーは原因では無いと思っております。分かり難い記載、申し訳ありませんでした。

    キャンセル

  • 2018/07/09 14:05

    「リネームを戻せば、エラーは発生しない」というのは単にHTMLファイルをApacheが直接取得してレスポンスにしているだけで、Railsは全く動いていないんですよね?それは全く解決になっていないのではないですか。
    エラーメッセージを見る限り production の項目がちゃんと定義されていないようなので、こちらの記事も参考にしてください。
    https://qiita.com/kanpe777/items/cb11dc88ced544d10bd5

    キャンセル

  • 2018/07/09 16:37

    ご回答ありがとうございました。原因としては下記2点になります。
    1点目は/public/index.htmlが存在する場合、view内のindex.htmlよりも優先して読み込まれるので、削除、またはリネームする必要がありました。
    2点目は本番環境への秘密鍵の設定ができていなかったことです。
    上記の2点を修正したところ、表示されるようになりました。お手数をお掛けしました。

    キャンセル

0

通常のApacheは、Rubyのコードを解釈できません

Passenger、Unicorn、Pumaなど、Rubyを実行するためのアプリケーションサーバを構築する必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/09 13:51

    ご回答ありがとうございます。RailsでApacheを利用するため、Passengerを導入済みでApache経由でのアクセスができることも確認済みになります。環境の記載が抜けており、すみませんでした。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Ruby on Rails 4

    2465questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。