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

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

新規登録して質問してみよう
ただいま回答率
85.48%
unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

解決済

1回答

468閲覧

Rails s を実行してもRailsが起動せず解決方法がわからないので教えていただけないでしょうか?

koume

総合スコア458

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2019/04/10 16:21

RailsアプリをCapistrano3でデプロイしようとしています。
開発はRails5.1.3で行っていたのですが5.1.7になってしまっていたのと開発環境でブラウザにアクセス出来なくなってしまい解決方法がわからないのでご教示お願いします。

Capistranoの設定をしてbundle installしたらRailsのバージョンがRails5.1.7になってしまいました。
Gemfileは以下の内容になっています。

gem 'rails', '~> 5.1.3' gem 'capistrano-rails', require: false
hostsファイルの設定は以下のようにしています。 127.0.0.1 example.com abcde-gate.com   # 開発環境 XXX.XXX.XXX.XX abcde-gate.com       # VPS

開発側にunicornをインストールと設定

config/unicorn.rb worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3) timeout 15 preload_app true listen '/home/vagrant/XXXX/XXXX/tmp/unicorn.sock' pid '/home/vagrant/XXXX/XXXX/tmp/unicorn.pid' before_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn master intercepting TERM and sending myself QUIT instead' Process.kill 'QUIT', Process.pid end defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! end after_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT' end defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])

~/.bash_profileにRAILS_ROOT記述

export RAILS_ROOT=/home/vagrant/XXXX/XXXX/

以上のようにしました。

VPS側では特に問題なしです。
デプロイはできていないのでVPSでアプリ画面の表示はできていませんがNginxの初期画面はhttpsで表示できています。(https//abcde-gate.comでアクセス完了)

画面表示を確認してみようと開発環境でアプリ画面を開こうと $ rails s を実行しました。

$ rails s => Booting Puma => Rails 5.1.7 application starting in development => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.12.1 (ruby 2.3.1-p112), codename: Llamas in Pajamas * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://localhost:3000 Use Ctrl-C to stop

Railsのバージョンが5.1.3から5.1.7になっていました。
gem 'capistrano-rails', require: false でバージョンが変わってしまったのでしょうか?

rails sを実行すると=> Rails 5.1.7 application starting in development on http://localhost:3000
となっていると思ったのですが
=> Rails 5.1.7 application starting in development で終わっています。
railsがhttp://localhost:3000で起動していないのでは?

この状態のままブラウザでアクセスすると、

このサイトにアクセスできません http://abcde-gate.com:3000/ のウェブページは一時的に停止しているか、新しいウェブアドレスに移動した可能性があります。 ERR_SOCKET_NOT_CONNECTED

hostsファイルの VPS側のXXX.XXX.XXX.XX abcde-gate.comをコメントアウトしても同じでした。

Railsのバージョンを5.3.1のままにしておくにはどうしたらいいのでしょうか?
http://abcde-gate.com:3000で起動し、アクセスするにはどうすればいいのでしょうか?
unicornを開発環境にインストールしたのが原因なのでしょうか?

どなたかご教示お願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

いろいろ不明点がありますが...

開発環境は、vagrant ということですが、Web ブラウザで どこからどのように確認しているのか不明なのですが...

vagrant であれば、ホスト側にポート転送する設定をしていますか?

ポート転送していないのであれば、ホスト側の Windows 等からは接続できませんので、設定をしてから確認してください。


rails の起動画面で、

  • Listening on tcp://localhost:3000

Use Ctrl-C to stop

と表示されているので、rails の起動は、ローカルホストで成功しています。

rails s を実行した vagrant サーバー上では、http://localhost:3000http://127.0.0.1:3000 でアクセスできると思います。


Railsのバージョンが5.1.3から5.1.7になっていました。
gem 'rails', '~> 5.1.3'

~> 5.1.3 と指定しているので、 5.1.3 以上で、 5.1.x のバージョンがインストールされます。

Railsのバージョンを5.3.1のままにしておくにはどうしたらいいのでしょうか?

バージョンを固定するのであれば、

gem 'rails', '5.1.3'

のように特定のバージョンのみを記載します。


また、rails を localhost ではなくサーバー外部からアクセスできる IPアドレス で、待ち受けさせるには、オプション指定が必要です。

rails s -b 0.0.0.0

のように -b IPアドレス を指定します。( 0.0.0.0 は、サーバーに設定されているすべての IPアドレスで待ち受けを指定)
当然ですが、Firewall 等がある場合は、ポートを開けて置く必要があります。

投稿2019/04/10 23:33

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koume

2019/04/11 01:16

いつも的確な回答ありがとうございます。 rails s -b 0.0.0.0で起動したところ接続出来ました。 今後とも宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問