2011-11-30 25 views
5

Tôi hiện có:WEBrick: RequestURITooLớn: tôi có nên cập nhật hoặc sử dụng một máy chủ khác không?

$ rails s 
=> Booting WEBrick 
=> Rails 3.0.9 application starting in development on http://0.0.0.0:3000 
=> Call with -d to detach 
=> Ctrl-C to shutdown server 
[2011-11-30 13:18:00] INFO WEBrick 1.3.1 
[2011-11-30 13:18:00] INFO ruby 1.9.2 (2011-02-18) [x86_64-darwin10.8.0] 
[2011-11-30 13:18:00] INFO WEBrick::HTTPServer#start: pid=4204 port=3000 

Vấn đề tôi đang gặp là tôi đang sử dụng OpenID cho auth và nhận được lỗi sau:

[2011-11-30 13:18:19] ERROR WEBrick::HTTPStatus::RequestURITooLarge 

Trong trình duyệt:

Request-URI Too Large 
WEBrick::HTTPStatus::RequestURITooLarge 
WEBrick/1.3.1 (Ruby/1.9.2/2011-02-18) at macbook-pro.local:3000 

Làm cách nào để khắc phục sự cố này? Tôi có thể cập nhật WEBrick hay tôi thực sự cần sử dụng một máy chủ web khác không?

Cảm ơn

+0

tôi đã cố gắng Unicorn nhưng nhận được: Bạn đã kích hoạt giá 1.3.3, nhưng Gemfile của bạn yêu cầu giá 1.2.4. Xem xét sử dụng gói exec. (Gem :: LoadError) – AnApprentice

+0

Cần phải thêm đây là một vấn đề localhost. Tôi đang cố gắng để có được lỗi này cố định tại địa phương chỉ tại thời điểm – AnApprentice

Trả lời

8

Trong Ruby 1.9.3. nguồn, nó nói rằng MAX_URI_LENGTH = 2083. Điều đó có nghĩa là phiên bản mới nhất của Webrick không thể xử lý các url dài hơn thế này. Và đó là những gì WEBrick :: HTTPStatus :: RequestURITooLoại trừ lớn đang cho bạn biết.

Do đó, giải pháp là sử dụng một máy chủ web khác. Một trong những người yêu thích nhất là Thin:

sudo gem install thin 

cd to/your/rails/app 

thin -h 

thin -a localhost start 
+0

Khi tôi thử điều tôi nhận được một lỗi: /.rvm/gems/[email protected]/gems/bundler-1.0.15/lib/bundler/runtime.rb:31:in 'chặn trong thiết lập ' : Bạn đã kích hoạt giá 1.3.3, nhưng Gemfile của bạn yêu cầu giá 1.2.4. Xem xét sử dụng gói exec. (Gem :: LoadError) – AnApprentice

+0

ok tìm ra điều đó. Có điều không hiển thị đường ray đăng nhập như webrick? – AnApprentice

+0

Đợi này là dành cho địa phương ... Bạn có nói rằng tôi nên sử dụng điều cho địa phương? – AnApprentice

0

Tôi thấy bạn đã thử kỳ lân: bạn đã thử chạy qua trình bao chưa? Địa chỉ:

gem :unicorn 

để Gemfile của bạn và chạy:

bundle exec unicorn_rails 

để khởi động server và duyệt đến http://localhost:8080.

+0

chạy bó exec rails s tải Khởi động WEBrick – AnApprentice

+0

Rất tiếc: bạn nói đúng. Bạn cần chạy 'bundle exec unicorn_rails' trong thư mục gốc. Đã cập nhật câu trả lời. – chrismdp

0

Giống như said here, bạn có thể thay đổi MAX_URI_LENGTH sử dụng mã này:

WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240) 
Các vấn đề liên quan