2012-11-15 47 views
13

Tôi đang học Ruby on Rails với railstutorial.org Tôi đã thiết lập mọi thứ và hoạt động tốt từ Chương 1. Tuy nhiên, đột nhiên ứng dụng tiếp theo của tôi gặp sự cố .Máy chủ Rails đang chạy, nhưng không thể kết nối với localhost: 3000

tôi chạy "đường ray máy chủ"

=> 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 

vẻ khi được làm việc tốt, giống như với ứng dụng trước đây của tôi.

Tuy nhiên, tôi thử kết nối với máy chủ cục bộ: 3000, 0.0.0.0:3000, 127.0.0.1:3000 trên các trình duyệt khác nhau và tất cả chúng đều không thể thiết lập kết nối với máy chủ.

Một số điều cần lưu ý:

-Tôi đã có thể kết nối với localhost chỉ một thời gian trước - nó chỉ có vẻ như nó đột nhiên ngừng làm việc ra khỏi màu xanh.

-Ứng dụng đầu tiên của tôi hoạt động hoàn toàn tốt, nhưng giờ đây ứng dụng này cũng không hoạt động cho ứng dụng đầu tiên của tôi.

-Tôi không có tường lửa chặn cổng và tệp máy chủ của tôi không phải là vấn đề.

-Tôi đang trên Ubuntu 12.10

tôi hầu như luôn luôn tìm ra giải pháp thông qua tìm kiếm, nhưng không phải lần này .. vì vậy tôi cần một số giúp đỡ xin vui lòng. Nó rất bực bội vì tôi cảm thấy đó là một vấn đề đơn giản mà tôi đã bỏ ra quá lâu để bị mắc kẹt.

Cảm ơn bạn.

+0

Có thể hiển nhiên, nhưng bạn đã kiểm tra bằng ps và netstat chưa? –

+0

Bạn đã làm gì nếu chạy 'wget http: //0.0.0.0: 3000'? –

+0

Tôi nhận được: 'Kết nối với 0.0.0.0:3000 ... được kết nối. Đã gửi yêu cầu HTTP, đang chờ phản hồi ... 200 OK Độ dài: 5906 (5.8K) [văn bản/html] ' –

Trả lời

11

Thử chạy nó trong một số cảng khác như nói 3001 là:
ray máy chủ -p 3001
Nếu làm việc của mình hơn so với thử nó một lần nữa vào 3000 như lệnh trên.
Tôi điều một số phần mềm khác đang sử dụng cổng 3000 của bạn đó là lý do tại sao nó không đáp ứng.
Hoặc đối với một số điều nâng cao, hãy xem here

+0

Xin cảm ơn vì phản hồi, nhưng nó lại bắt đầu làm việc cho tôi một cách ngẫu nhiên. Không thực sự chắc chắn những gì đã xảy ra. –

6

Đảm bảo bạn chạy rake db:create trước khi khởi chạy đường ray s.

12

với đường ray 4.2.0, máy chủ liên kết với localhost theo mặc định, thay vì 0.0.0.0. Khi làm việc với một đường ray trong một hộp ảo, truy cập vào máy chủ từ máy chủ, địa chỉ liên kết cần phải là 0.0.0.0

Khởi động máy chủ đường ray với -b0.0.0.0 để làm cho máy chủ có thể truy cập được từ máy chủ/trình duyệt.

http://guides.rubyonrails.org/4_2_release_notes.html#default-host-for-rails-server https://github.com/samuelkadolph/unicorn-rails/issues/12#issuecomment-60875268

5

Tôi đang sử dụng đường ray 5.0.0.beta3 và đã chạy vào vấn đề này. Câu trả lời của @ andrewleung đã giúp tôi rất nhiều.

Dường như địa chỉ liên kết mặc định của Rails bị rối loạn trên máy tính của tôi (Mac OS 10.11.6); trên một số người khác, nó hoạt động tốt.

Giải pháp đơn giản chỉ là sử dụng rails server -b127.0.0.1. Sau đó, bạn có thể truy cập vào localhost:3000.

Đoán của tôi ở đây là (được gợi ý từ https://serverfault.com/a/544188) rằng ràng buộc localhost bị sai lệch trên máy tính của tôi trong khi 127.0.0.1 cụ thể hơn.

0

Vấn đề mà hóa ra tôi gặp phải là máy ảo của tôi đã hết dung lượng ổ đĩa cứng và thậm chí không còn đủ để tạo tệp server.pid. Tuy nhiên, vì một lý do nào đó, nó không phải là một lỗi cho việc này, vì tập tin đã được tạo ra, nhưng đã để trống.

0

Tôi gặp sự cố tương tự. Nó bật ra rằng trình duyệt đồng bộ hóa cũng chạy trên localhost: 3000.

Do một số nhà phát triển Rails sẽ sử dụng tính năng đồng bộ hóa trình duyệt để kiểm tra nhanh tập lệnh giao diện người dùng, tôi cho rằng đó có thể là lý do phổ biến khiến cổng 3000 được sử dụng.

0

kiểm tra tệp/etc/hosts của bạn .. đó là ip 0.0.0.0 hoặc localhost trỏ đến một số địa chỉ khác.

Các vấn đề liên quan