web-dev-qa-db-fra.com

Le serveur Rails est en cours d'exécution, mais ne peut pas se connecter à localhost: 3000

J'apprends Ruby on Rails avec railstutorial.org J'avais tout préparé et tout fonctionnait bien depuis le chapitre 1. Cependant, tout à coup, ma prochaine application a un problème.

Je lance "serveur Rails"

=> Booting WEBrick
=> Rails 3.2.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-11-15 00:45:08] INFO  WEBrick 1.3.1
[2012-11-15 00:45:08] INFO  Ruby 1.9.3 (2012-11-10) [x86_64-linux]
[2012-11-15 00:45:08] INFO  WEBrick::HTTPServer#start: pid=2752 port=3000

Semble fonctionner correctement, comme avec mon application précédente.

Cependant, j'essaie de me connecter à localhost: 3000, 0.0.0.0:3000, 127.0.0.1:3000 sur différents navigateurs et ils ne peuvent pas tous établir une connexion au serveur.

Quelques points à noter:

-J'ai pu me connecter à localhost il y a quelques instants - il semble que cela ait soudainement cessé de fonctionner de façon inattendue.

-Ma première application fonctionnait parfaitement, mais maintenant cela ne fonctionne pas non plus pour ma première application.

-Je n'ai pas de pare-feu bloquant le port, et mon fichier hosts n'est pas le problème.

-Je suis sur Ubuntu 12.10

Je trouve presque toujours des solutions via la recherche, mais pas cette fois-ci .. j'ai donc besoin d'aide, s'il vous plaît. C'est très frustrant car je sens que c'est un problème simple sur lequel j'ai passé trop longtemps à rester bloqué.

Je vous remercie.

15
Alexander Sung

avec Rails 4.2.0, le serveur se connecte à localhost par défaut, au lieu de 0.0.0.0. Lorsque vous travaillez avec des Rails dans une boîte virtuelle et que vous accédez au serveur à partir de l'ordinateur hôte, l'adresse de liaison doit être 0.0.0.0.

Démarrez le serveur Rails avec -b0.0.0.0 pour rendre le serveur Rails accessible à partir de l'ordinateur/navigateur hôte.

http://guides.rubyonrails.org/4_2_release_notes.html#default-Host-for-Rails-serverhttps://github.com/samuelkadolph/Unicorn-Rails/issues/12# issuecomment-60875268

13
andrewleung

Essayez de l’exécuter dans un autre port comme par exemple 3001 en tant que:
Serveur Rails -p 3001
Si cela fonctionne, essayez à nouveau sur 3000 comme indiqué ci-dessus.
Je pense qu'un autre logiciel utilise votre port 3000, c'est pourquoi il ne répond pas.
Ou pour des choses avancées voir ici

13
Sivan

Assurez-vous d’exécuter rake db:create avant de lancer Rails s. 

7
Borat.sagdiyev

J'utilise Rails 5.0.0.beta3 et je rencontrais ce problème. La réponse de @ andrewleung m'a beaucoup aidé. 

Il semble que l'adresse de liaison par défaut de Rails soit gâchée sur mon ordinateur (Mac OS 10.11.6); sur d'autres, cela fonctionne bien. 

La solution simple consiste simplement à utiliser Rails server -b127.0.0.1. Vous pouvez ensuite accéder à votre localhost:3000

Mon hypothèse est (suggérée par https://serverfault.com/a/544188 ) que la liaison localhost est perturbée sur mon ordinateur alors que 127.0.0.1 est plus spécifique. 

5
MaximeBernard

Le problème qui se présentait à moi était que mon VM n'avait plus assez d'espace disque et qu'il ne restait même plus assez pour créer le fichier server.pid. Pour une raison quelconque, il n'a pas généré d'erreur, le fichier étant en cours de création, mais laissé vide.

0
boulder_ruby

Je rencontre le même problème. Il s'est avéré que la synchronisation du navigateur fonctionne également sur localhost: 3000.

En raison du fait que certains développeurs Rails utiliseraient la synchronisation de navigateur pour tester rapidement les scripts front-end, je pense que cela pourrait être une raison populaire d'utiliser le port 3000.

0
searain

vérifiez votre fichier/etc/hosts..is ip 0.0.0.0 ou localhost pointant vers une autre adresse.

0
puneet18