Hugo_Lol
(Hugo Lol)
1
こんにちは!Ubuntu 18.04 の仮想マシン(VMware Workstation 15 Player を使用)に、このガイド に従って正常に Discourse をインストールしました。VM 内からは http://localhost:3000/ へのアクセスは問題ないのですが、Windows 10 のホストシステムからはアクセスできません。VM のネットワークはブリッジモードで設定されており、Rails サーバーを実行する際には以下のコマンドを使用しています:
bundle exec rails server --binding=0.0.0.0
しかし、ホストマシンから http://192.168.0.172:3000/ にアクセスすると、「接続が拒否されました」というエラーが表示されます。VM 内で単純な Python HTTP サーバーを設定してみました:
python3 -m http.server 3000
これならホストマシンから実際にアクセスできるため、Discourse 固有の問題だと考えています。何か見落としていることがあるでしょうか?
よろしくお願いいたします!
neounix
(Dark Matter)
2
こんにちは @Hugo_Lol さん
ホストと仮想マシン(VM)間のポート転送の設定方法を確認すると役立つかもしれません。例えば:
別の例:
これらの例を参考に、この問題の解決策を始めるヒントを得られるかもしれません。
お役に立てれば幸いです。
「いいね!」 1
Hugo_Lol
(Hugo Lol)
3
こんにちは、@neounix さん、返信ありがとうございます。VM のネットワークをブリッジモードで設定済みで、同じポート(3000)とアドレス(0.0.0.0)でリッスンするシンプルな Python HTTP サーバーなら外部からアクセスできますが、Discourse サーバーではなぜか動作しません…:thinking:
何かアイデアはありますか?
「いいね!」 1
neounix
(Dark Matter)
4
@Hugo_Lol さん、こんにちは。
どういたしまして。
私は Windows ユーザーではないので、それ以上のお役に立てず申し訳ありません!
私が提案できる最善のことは、/var/log 内のさまざまな Discourse ログファイルに手がかりを探すことです。
Osama
5
ここでの問題は、--binding オプションが完全に無視されていることです。ローカルでコマンドを実行したところ、出力に以下の行が含まれているのが確認できました(出力が非常に多いため、この行を見逃しやすいです):
I, [2020-06-08T17:26:55.938086 #21001] INFO -- : listening on addr=127.0.0.1:3000 fd=15
config/unicorn.conf.rb を確認すると、サーバーが 0.0.0.0 をリッスンするようにするには、UNICORN_BIND_ALL=1 環境変数を設定する必要があります。したがって、以下のコマンドが機能するはずです:UNICORN_BIND_ALL=1 bundle exec rails server。
あるいは、--host オプションを受け付ける bin/unicorn スクリプトを使用し、0.0.0.0 にバインドすることもできます。
「いいね!」 9
Hugo_Lol
(Hugo Lol)
6
これで解決しました!もう動いています。二人とも本当にありがとうございます。
「いいね!」 6
shell
(Vladimir Penkin)
7
ありがとうございます。これで頭を悩ませる必要がなくなりました。
動作しない bundle exec rails server -b 0.0.0.0 という解決策の代わりに、これを公式ユーザーガイドに追加していただけないでしょうか。
インターネット上でこの情報が至る所に見られ、それが動作しないとは想像もできませんでした。
ありがとう!同じ問題を抱えていたので、これで解決しました!
「いいね!」 1