Bonjour ! J’ai installé Discourse avec succès dans une machine virtuelle Ubuntu 18.04 (en utilisant VMware Workstation 15 Player) en suivant le guide. L’accès à http://localhost:3000/ depuis l’intérieur de la VM fonctionne bien, mais je ne peux pas y accéder depuis mon hôte Windows 10. Le réseau de la VM est configuré en mode ponté, et pour exécuter le serveur Rails, je lance :
bundle exec rails server --binding=0.0.0.0
Cependant, lorsque j’essaie d’accéder à http://192.168.0.172:3000/ depuis mon hôte, j’obtiens une erreur de refus de connexion. J’ai essayé de configurer un simple serveur HTTP Python dans la VM :
python3 -m http.server 3000
Et je peux effectivement y accéder depuis mon hôte, donc je pense que le problème est spécifique à Discourse. Est-ce que je manque quelque chose ?
Bonjour @neounix, merci pour ta réponse. J’ai déjà configuré le réseau de la VM en mode ponté, et je peux y accéder depuis l’extérieur en utilisant un simple serveur HTTP Python qui écoute sur le même port (3000) et la même adresse (0.0.0.0), mais pour une raison inconnue, cela ne fonctionne pas avec le serveur Discourse…
Le problème ici est que l’option --binding est totalement ignorée. J’ai essayé votre commande localement et j’ai repéré cette ligne dans la sortie (la sortie est très bruyante, il est donc très facile de manquer cette ligne) :
I, [2020-06-08T17:26:55.938086 #21001] INFO -- : listening on addr=127.0.0.1:3000 fd=15
En parcourant notre config/unicorn.conf.rb, pour que le serveur écoute sur 0.0.0.0, vous devez définir la variable d’environnement UNICORN_BIND_ALL=1. Cela devrait donc fonctionner : UNICORN_BIND_ALL=1 bundle exec rails server.
Sinon, vous pouvez utiliser le script bin/unicorn qui accepte une option --host que vous pouvez utiliser pour vous lier à 0.0.0.0.
Merci, cela m’a évité bien des maux de tête.
Je me demande si vous pourriez mettre à jour les guides officiels pour inclure cela plutôt que la solution non fonctionnelle avec bundle exec rails server -b 0.0.0.0.
Je l’ai vu partout sur internet et je n’aurais jamais imaginé que cela ne fonctionnerait pas.