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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby on Rails 5

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Q&A

解決済

1回答

282閲覧

作成したRailsアプリを、後日起動してサイトにアクセスしようとすると動かなくなる

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby on Rails 5

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

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

0グッド

0クリップ

投稿2018/03/16 01:08

編集2018/03/17 02:56

前提・実現したいこと

railsアプリを勉強している初心者です。
railsの開発に関してお伺いしたいことがあり投稿致しました。

仮想マシン上でrailsアプリを作成した際、アプリ作成時は、サーバーアプリの起動からブラウザでのサイトの表示まで、成功するのですが、
後日、仮想マシンを立ち上げ、サーバーアプリを起動し、ブラウザでサイトを表示しようとすると、
下記のような状態になり、サーバーの起動を停止することもできなくなります。

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

[vagrant@localhost test_app]$ bundle exec rails s
=> Booting Puma
=> Rails 5.1.4 application starting in development
=> Run rails server -h for more startup options
Puma starting in single mode...

  • Version 3.11.2 (ruby 2.5.0-p0), codename: Love Song
  • Min threads: 5, max threads: 5
  • Environment: development
  • Listening on tcp://0.0.0.0:3000

Use Ctrl-C to stop
Started GET "/" for 192.168.33.1 at 2018-03-08 08:19:13 +0000
Cannot render console from 192.168.33.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Started GET "/" for 192.168.33.1 at 2018-03-08 08:19:14 +0000
Cannot render console from 192.168.33.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
(1.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
(1.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC

ポートを変更して起動すると、通ります。

[vagrant@localhost test_app]$ bundle exec rails s -b 0.0.0.0 -p 3001
=> Booting Puma
=> Rails 5.1.4 application starting in development
=> Run rails server -h for more startup options
Puma starting in single mode...

  • Version 3.11.2 (ruby 2.5.0-p0), codename: Love Song
  • Min threads: 5, max threads: 5
  • Environment: development
  • Listening on tcp://0.0.0.0:3001

Use Ctrl-C to stop
Started GET "/" for 192.168.33.1 at 2018-03-08 08:11:12 +0000
Cannot render console from 192.168.33.1! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
(1.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
Processing by Rails::WelcomeController#index as HTML
Rendering vendor/bundle/ruby/2.5.0/gems/railties-5.1.4/lib/rails/templates/rails/welcome/index.html.erb
Rendered vendor/bundle/ruby/2.5.0/gems/railties-5.1.4/lib/rails/templates/rails/welcome/index.html.erb (19.5ms)
Completed 200 OK in 173ms (Views: 120.3ms | ActiveRecord: 0.0ms)

試したこと

・rails db:migrate → 変わらず
・仮想マシンをシャットダウン→再起動→サーバーアプリ起動→変わらず
・ポート番号を変えて起動→通る

いろいろ試してはみたのですが、原因がわかりませんでした。
お手数ではありますが、お力添えして頂ければと思います。
よろしくお願い申し上げます。

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

ホストOS:windows10
ゲストOS:CentOS7
仮想マシン構築ツール
vagrant (2.0.1)
VirtualBox (5.2.6)
仮想マシン上での開発環境
ruby (2.5.0)
rails (5.1.4)
bundler (1.16.1)
bundler以外のGemは(rails含めて)アプリケーションフォルダ内のvendor/bundleフォルダ内にインストールしている

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

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

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

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

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

guest

回答1

0

ベストアンサー

他のportで動くならVagrantfileの転送設定もれとかでしょうか http://mokokko.hatenablog.com/entry/2014/05/04/221452

ruby

1config.vm.network :"forwarded_port", guest: 3000, host: 3000 2

もしくはhostかguestですでに3000 portを使っているとか?それなら既存processをkillすれば解決。

bash

1ps aux |grep rails 2kill <見つけたprocess id>

パッと見た感じCannot render console from Allowed networksと出ていて、localhost以外のアクセスを拒否しているように見えるので設定ファイルを修正して問題の1つを修正した方が切り分けが簡単になる気がしました。https://qiita.com/suin/items/9b567c63af73b235e458

ruby

1# config/environments/development.rbを修正 2 config.web_console.whitelisted_ips = '0.0.0.0/0' 3# または 4# config.web_console.whitelisted_ips = '192.168.33.1/32'

後はconsole表示上は大丈夫そうに見えますが、念のためちゃんと-bオプションをつけてlocalhostでなく0.0.0.0で確実に起動させるとかでしょうか

ruby

1bundle exec rails s -b 0.0.0.0

投稿2018/03/17 04:32

hiromichinomata

総合スコア294

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

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

退会済みユーザー

退会済みユーザー

2018/03/17 08:48

hiromichinomata 様 回答有難うございます。 ご提示いただいた解決策を試してみたのですが、解決することはできませんでした。 ------------------------------ 1.Vagrantfileの転送設定もれ ------------------------------ こちらVagrantfileに config.vm.network "private_network", ip: "192.168.33.10" という記述をしておりますので、転送はできているという認識です。 ------------------------------ 2.hostかguestですでに3000 portを使っている ------------------------------ こちら、ホスト・ゲスト共に確認してみましたが、3000 portは使われていないかと思います。 ・ホスト(Windows10)で使用したコマンド netstat -nao ・ゲスト(CentOS7)で使用したコマンド ps aux |grep rails 特に、ゲストPCは、シャットダウン、再起動して試してもみたので、portが使用され続けているということはないかと思われます。 ------------------------------ 3.Cannot render console from Allowed networks ------------------------------ こちらはお教えいただいた方法で、コンソール上には表示されなくなりました。 ------------------------------ 気になった点 ------------------------------ 不可解なのは bundle exec rails s で、サーバーの起動自体はできているということです。 ただし、ブラウザ上でそのサイトにアクセスしようとするとコンソール上に (1.4ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC (1.9ms) SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC と出て、ブラウザはずっとサイトを読み込もうとしている状態になります。 schema_migrationsテーブルを読み込もうとして失敗しているということなのでしょうか。 ちなみにデータベースはSQLiteを使用しております。
hiromichinomata

2018/03/17 11:36

ふむ、難しいですね。schema_migrationsのところは単純にSELECTしているだけなのでmigrationが最後まで実行されているかチェックしているだけだと思います。普通はでない気もしますが。 気になるなら試しにもう一度`rake db:migrate`するかdbの内容クリアしていいなら`rake db:rollback`で少し戻ってから`rake db:migrate`してみるとかでしょうか。 ただ、3001portで見れているなら関係ない気もします。 自分なら少しづつ問題の切り分けをしていきますね。 例えばrailsのdirectoryで ```bash # python 2.x系 python -m SimpleHTTPServer 3000 ``` とやればrubyでなくpythonで簡易webサーバーが立ち上がります。これを3000ポートと3001ポートで試せば問題がRails側なのかインフラ側なのかわかります。状況が3000ポートだけ見れないなら問題はrails関係ない。 次にhostのdirectoryコピーしてVagrantfileのboxを例えばUbuntuとかにしてCentOSのfirewallの問題なのかVirtualBoxの問題なのか切り分けるとかでしょうか。 歯切れの悪い回答ですいません。
退会済みユーザー

退会済みユーザー

2018/03/18 06:42

全くの手探り状態なので、可能性を提示して頂けるだけでも大変助かっております。 python -m SimpleHTTPServer で300と3001ポートで立ち上げたところ、どちらもRailsアプリのディレクトリ構造がブラウザに表示されました。 やはり、ポートが使用中であったり、VirtualBoxで問題が起きているのではなく、Railsで問題が起きているということでしょうか。 もう少しいろいろ試してみたく思います。
hiromichinomata

2018/03/18 07:10

そうですね。Pythonで動くなら問題はRailsだと思います。ただ、普通port違いでページの表示が変わることはあまりない気がします。 development環境のdefault設定ならpublic directoryのファイルは直アクセスできるので例えばrobots.txtをを3000と3001でそれぞれアクセスして比べてみるというのはどうでしょうか。 とあるurlの挙動だけおかしいのか、全体としておかしいのか切り分けしていくのがいいのではないかと思いました。 後はブラウザのキャッシュとかでしょうか。試しに別ブラウザのprivate browsingモードで挙動を比較してみるというのも一つの方法です。
退会済みユーザー

退会済みユーザー

2018/03/18 12:48

robots.txtを試そうとしたところ、普通にport3000でアクセスできるようになっていました。robots.txtの内容を見ることもできました。アクセスできるようになったタイミングは不明です。 その後、しばらく放置して再度port3000で立ち上げようとしたところ、またサイトにアクセスできなくなりました。 今度はchromeの閲覧履歴の消去を行ったところ、port3000でサイトにアクセスできるようになりました。 hiromichinomata 様のご指摘通り、ブラウザのキャッシュがどうも関係しているように思われます。なぜそのような挙動になるのかは不明ですが。 もしくはホストPCを放置した際にスリープをはさんだのですが、それが原因か。いずれにしても1歩前進したように思われます。 引き続き検証していきたく思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問