Il y a au moins trois composants distincts en jeu ici, dont chacun doit être configuré correctement.
Adresse de liaison des rails
Lorsque Rails (ou une autre application serveur) s'ouvre pour recevoir des connexions réseau, il se lie à la fois à une adresse IP et à un port. Si une demande entrante ne correspond pas aux deux, elle n'acceptera pas la connexion. De rails server --help
:
Usage: rails server [mongrel, thin etc] [options]
-p, --port=port Runs Rails on the specified port.
Default: 3000
-b, --binding=IP Binds Rails to the specified IP.
Default: localhost
...
Par défaut, Rails n'acceptera que les demandes envoyées à sa localhost
carte réseau (de bouclage) (appelée lo
). Étant donné que cet adaptateur n'est accessible que depuis le même ordinateur, les seules demandes qu'il acceptera proviendront de la machine virtuelle Debian elle-même: bonne et sécurisée pour les tests, mais pas utile pour la production, ou même les tests à partir d'un autre ordinateur.
Si vous voulez que vos Rails soient accessibles depuis n'importe quel autre ordinateur (y compris votre hôte Windows 7), vous devrez dire à Rails de se lier à l'adresse IP Debian accessible de l'extérieur (voir ci-dessous).
Cependant, un moyen plus simple consiste à dire à Rails de se lier à l'adresse IP spéciale 0.0.0.0
, ce qui signifie n'importe quelle carte réseau . Donc, démarrer votre serveur Rails comme ceci:
rails server -p 80 -b 0.0.0.0
rendra votre site Web accessible à tous ceux qui peuvent voir votre machine virtuelle sur le réseau.
C'est probablement ce qui vous a encore gâché même si vous aviez les deux autres composants en état de marche.
Adresse IP de la machine virtuelle
Vous devez pointer votre navigateur vers la machine virtuelle Debian, qui est son propre ordinateur discret.
La règle générale localhost
est qu'elle fait toujours référence au même ordinateur. Cependant, à des fins de mise en réseau, votre machine virtuelle Debian est son propre ordinateur distinct. Si vous utilisez un navigateur Web dans votre hôte Windows 7, localhost
se référera toujours à votre Windows 7 et à rien d'autre.
Vous avez deux options ici:
Réglez l'adaptateur VM VirtualBox en mode Pont (comme vous l'avez mentionné dans votre question). Cela placera votre Debian directement sur le même réseau extérieur / domestique / professionnel que votre hôte Windows 7. Vous pouvez ensuite déterminer l'IP de votre machine virtuelle Debian en exécutant ifconfig
. Recherchez l'IP de votre eth0
ou eth<something>
adaptateur. Branchez-le dans la barre d'adresse de votre navigateur.
Utilisez un adaptateur NAT et une redirection de port VirtualBox . OMI, c'est plus compliqué.
Pare-feu Debian
Cela fait un moment que je n'ai pas travaillé sur Debian, donc je ne sais pas quels sont les paramètres par défaut actuels, mais si les deux choses ci-dessus ne fonctionnent pas, cela pourrait valoir la peine d'être étudié. Si Debian exécute un pare-feu, vous devrez ouvrir tous les ports auxquels vous souhaitez accéder depuis une autre machine.
J'espère que cela t'aides :)