1. ホーム
  2. ruby-on-rails

[解決済み] Railsアプリケーションを本番環境に変更する

2022-04-13 04:40:11

質問内容

Railsアプリケーションを本番モードで実行するように変更するにはどうすればよいですか?そのための設定ファイル (たとえば environment.rb) はありますか?

どのように解決するのですか?

ApacheとPhusion Passengerを使用して、Rails 4アプリを本番モードでセットアップして実行する方法(ステップバイステップ)。

通常であれば、Railsのプロジェクトに入ることができるはずです。 rails s で、開発版のアプリを取得できます。 http://something.com:3000 . 本番モードは少し設定が難しいです。

しばらくいじくりまわしていたので、初心者(私のような)のために書いておこうと思いました。インターネット上で広まっているいくつかの小さな微調整がありますが、この方が簡単かもしれないと思いました。

  1. サーバーのコアセットアップについては、このガイドを参照してください(CentOS 6ですが、ほぼすべてのLinuxフレーバーに適用されるはずです)。 https://www.digitalocean.com/community/tutorials/how-to-setup-a-rails-4-app-with-apache-and-passenger-on-centos-6

  2. Passenger のセットアップが完了した後、必ず /etc/httpd/conf/httpd.conf ファイルを作成して、ディレクトリ構造を反映させてください。 DocumentRoot を Rails プロジェクトの /public フォルダに指定します。 のどこかが httpd.conf ファイルには、このようなdirがあります。 /var/www/html/your_application/public を更新しないと、すべてが非常にもどかしくなります。私はこのことを十分に強調することができません。

  3. サーバーを再起動する(最低でもApacheは-。 service httpd restart )

  4. Railsのプロジェクトフォルダを入力します。 /var/www/html/your_application で移行を開始します。 rake db:migrate . 後でテーブルを追加する予定であっても、データベーステーブルが存在することを確認してください(これはステップ1の一部でもあります)。

  5. RAILS_ENV=production rake secret - に追加できる secret_key が作成されます。 config/secrets.yml . あなたは できる これをconfig/secrets.ymlにコピー&ペーストすると、物事を実行できるようになりますが、これはしないことをお勧めします。個人的には、このステップは他のすべてが動作していることを確認するために行い、後でそれを元に戻してソースを作成します。

  6. RAILS_ENV=production rake db:migrate

  7. RAILS_ENV=production rake assets:precompile 静的アセットを配信している場合。これは、js、css、画像ファイルを /public フォルダーに格納されます。

  8. RAILS_ENV=production rails s

この時点で、アプリは以下の場所で利用できるようになります。 http://something.com/whatever ではなく :3000 . そうでない場合は passenger-memory-stats のようなエントリがあるかどうかを確認し 908 469.7 MB 90.9 MB Passenger RackApp: /var/www/html/projectname

おそらく何か凶悪なものを見逃しているのでしょうが、過去にこれでうまくいったことがあります。