Hallo! Ich habe Discourse erfolgreich auf einer Ubuntu 18.04-Virtual Machine (mit VMware Workstation 15 Player) installiert, indem ich die Anleitung befolgt habe. Der Zugriff auf http://localhost:3000/ von innerhalb der VM funktioniert einwandfrei, aber ich kann ihn von meinem Windows 10-Host-System aus nicht erreichen. Das VM-Netzwerk ist im Brückenmodus konfiguriert, und zum Starten des Rails-Servers führe ich folgenden Befehl aus:
bundle exec rails server --binding=0.0.0.0
Wenn ich jedoch von meinem Host-System aus http://192.168.0.172:3000/ aufrufe, erhalte ich einen Fehler „Verbindung verweigert“. Ich habe versucht, einen einfachen Python-HTTP-Server innerhalb der VM einzurichten:
python3 -m http.server 3000
Und ich kann diesen tatsächlich von meinem Host-System aus erreichen, also denke ich, dass das Problem spezifisch für Discourse ist. Habe ich etwas übersehen?
Hi @neounix, danke für die Rückmeldung. Ich habe das VM-Netzwerk bereits im Brückenmodus konfiguriert und kann es von außen erreichen, indem ich einen einfachen Python-HTTP-Server verwende, der am gleichen Port (3000) und an derselben Adresse (0.0.0.0) lauscht. Aus irgendeinem Grund funktioniert es jedoch nicht mit dem Discourse-Server …
Das Problem hier ist, dass die Option --binding komplett ignoriert wird. Ich habe deinen Befehl lokal ausprobiert und habe diese Zeile in der Ausgabe entdeckt (die Ausgabe ist sehr umfangreich, sodass diese Zeile leicht übersehen werden kann):
I, [2020-06-08T17:26:55.938086 #21001] INFO -- : listening on addr=127.0.0.1:3000 fd=15
Wenn du unsere config/unicorn.conf.rb durchgehst, musst du zum Hören des Servers auf 0.0.0.0 die Umgebungsvariable UNICORN_BIND_ALL=1 setzen. Das sollte also funktionieren: UNICORN_BIND_ALL=1 bundle exec rails server.
Alternativ kannst du das Skript bin/unicorn verwenden, das eine Option --host akzeptiert, mit der du an 0.0.0.0 binden kannst.
Danke, das hat mir einige Kopfschmerzen erspart.
Ich frage mich, ob du die offiziellen Benutzerhandbücher aktualisieren könntest, um dies statt der nicht funktionierenden Lösung mit bundle exec rails server -b 0.0.0.0 aufzunehmen.
Ich habe es überall im Internet gesehen und konnte mir nicht vorstellen, dass es nicht funktionieren würde.