2011-11-30 8 views
5

Obecnie mam:WEBrick: RequestURITooDuży: czy powinienem zaktualizować lub użyć innego serwera?

$ 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 

Problem mam jest używam OpenID dla uwierzytelniania i otrzymuję następujący błąd:

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

w przeglądarce:

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

Jak mogę to naprawić? Czy mogę zaktualizować WEBrick lub czy naprawdę muszę użyć innego serwera WWW?

Dzięki

+0

próbowałem Unicorn ale dostać: Już aktywowane Rack 1.3.3, ale twój Gemfile wymaga szafy 1.2.4. Rozważ użycie pakietu exec. (Gem :: LoadError) – AnApprentice

+0

Należy dodać to jest problem localhost. Próbuję naprawić ten błąd lokalnie tylko w tej chwili – AnApprentice

Odpowiedz

8

W języku Rubin 1.9.3. źródło, mówi, że MAX_URI_LENGTH = 2083. Oznacza to, że najnowsza wersja Webrick nie może obsługiwać adresów URL dłużej niż to. Właśnie o tym mówi wyjątek WEBrick :: HTTPStatus :: RequestURITooLarge.

Rozwiązaniem jest zatem użycie innego serwera WWW. Jednym z nich jest najbardziej ulubione Cienki:

sudo gem install thin 

cd to/your/rails/app 

thin -h 

thin -a localhost start 
+0

Gdy próbuję coś, pojawia się błąd: /.rvm/gems/[email protected]/gems/bundler-1.0.15/lib/bundler/runtime.rb:31:in 'block in setup ' : Już aktywowałeś stojak 1.3.3, ale twój Gemfile wymaga szafy 1.2.4. Rozważ użycie pakietu exec. (Gem :: LoadError) – AnApprentice

+0

ok zorientował się, że. Czy coś nie pokazuje rejestrowania szyn jak webrick? – AnApprentice

+0

Czekaj, że to jest dla lokalnych ... Mówisz, że powinienem używać rzeczy dla lokalnych? – AnApprentice

0

widzę próbowałem jednorożec: Czy próbowałeś uruchomić go poprzez Bundler? Dodaj:

gem :unicorn 

do Gemfile i uruchom:

bundle exec unicorn_rails 

aby uruchomić serwer i przejdź do http://localhost:8080.

+0

z uruchomionymi pakietami ładującymi się bootami Booting WEBrick – AnApprentice

+0

Ups: masz rację. Musisz uruchomić 'bundle exec unicorn_rails' w katalogu głównym. Zaktualizowano odpowiedź. – chrismdp

0

Jak said here, można zmienić MAX_URI_LENGTH przy użyciu tego kodu:

WEBrick::HTTPRequest.const_set("MAX_URI_LENGTH", 10240)