monika
April 5, 2009, 6:40pm
1
Witam,
Po wpisaniu adresu strony http://www.square.webfactional.com/test/index pokazuje się pusta strona z komunikatem:
Status: 500 Internal Server Error Content-Type: text/html
500 Internal Server Error
Rails 2.1.0
W logach jest taki zapis
Status: 500 Internal Server Error
No route matches “/test/index” with {:method=>:get}
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb:67:in recognize_path' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:384:in
recognize’
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:148:in handle_request' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in
dispatch’
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in synchronize' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in
dispatch’
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in dispatch_cgi' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in
dispatch’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in process' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in
synchronize’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in process' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in
process_client’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in each' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in
process_client’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in
initialize’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in new' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in initialize' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in
new’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:271:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in each' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:127:in run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243
/usr/local/bin/mongrel_rails:16:in `load’
/usr/local/bin/mongrel_rails:16
Dlaczego nie mogę uruchomić tej strony ?
w config/routes.rb nie masz odpowiedniej ścieżki.
monika
April 5, 2009, 6:52pm
3
routes.rb wygląda tak :
ActionController::Routing::Routes.draw do |map|
map.connect ‘’, :controller => ‘test’, :action => ‘index’
map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
end
Tomash
April 5, 2009, 8:23pm
4
Najsampierw zamień pierwszą z linijek z map.connect na map.root – tak się mapuje główną ścieżkę
monika
April 6, 2009, 11:27am
5
zrobione, ale nie pomogło.
Tomash
April 6, 2009, 12:07pm
6
Masz kontroler TestController czy TestsController?
Masz w nim akcję index?
Masz widok do tej akcji?
monika
April 6, 2009, 7:37pm
7
mam kontroler: test_controller.erb
class TestController < ApplicationController
def index
end
end
views/test/index.html.erb
Tommy
April 6, 2009, 7:46pm
8
Nazwa ‘test’ jest nazwą “zastrzeżoną” :), wybierz jakiś “normalny” rzeczownik w liczbie mnogiej, mało ich.
http://wiki.rubyonrails.org/rails/pages/ReservedWords
może nie zastrzeżoną ale może stwarzać problemy, z tym że nie wydaje mi się że tutaj to może być błędem, sam używam gęsto i często jako nazwy kontrolera
ja proponuje zamienić:
map.connect '', :controller => 'test', :action => 'index'
na :
map.root :controller => 'test', :action => 'index'
Tak jak Tomash mówi, ale sprawdź czy napewno masz bez apostrofów, chociaż tez mi się nie wydaje
Masz błąd nawet tutaj: http://www.square.webfactional.com/rails/info/properties , sprawdziłaś logi serwera czy wszystko gra?
Jakiego serwera używasz, jeśli passenger sprawdź vhost.
Uzasadnienie: Jeśli byłby to tylko błąd routingu dostałabyś błąd: “Routing Error”, ten błąd też występuje, ale wydaje mi się jest drugoplanowy, masz jakiś błąd w konfiguracji aplikacji/serwera.
monika
April 7, 2009, 6:36pm
10
sprawdziłam w routes.rb mam
map.root :controller => ‘test’, :action => ‘index’
a zapis w logach tak się prezentuje np. production.log
/!\ FAILSAFE /!\ Tue Apr 07 13:27:09 -0500 2009
Status: 500 Internal Server Error
No route matches “/test/index” with {:method=>:get}
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb:67:in recognize_path' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:384:in
recognize’
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:148:in handle_request' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:107:in
dispatch’
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in synchronize' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:104:in
dispatch’
/home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:120:in dispatch_cgi' /home/square/webapps/prawnicy_prawoity/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:35:in
dispatch’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in process' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in
synchronize’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in process' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in
process_client’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in each' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in
process_client’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in
initialize’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in new' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in initialize' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in
new’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:271:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in each' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/configurator.rb:270:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:127:in run' /usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in
run’
/usr/local/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243
/usr/local/bin/mongrel_rails:16:in `load’
/usr/local/bin/mongrel_rails:16
w środowisku development też taki błąd wyskakuje?
monika
April 7, 2009, 7:27pm
13
przepraszam napisałam że nie a jednak występuje.
FAILSAFE już mówi więcej a błąd 500 może wiele czynników powodować:
http://mattwindsurfs.wordpress.com/2007/12/15/failsafe-in-my-rails-production-log/
http://www.hostingrails.com/1204/Updating-Doesnt-Work
z tego co zauważyłem to dużo ludzi skarży się na dispatchera
http://dev.rubyonrails.org/ticket/9630
ale mi zdarzyło się z różnych powodów, nawet złego kodowania pliku, niewłaściwej wersji gema czy railsów, niekompletnej instalacji. Najczęściej pojawiał się przy złym przekierowaniu przez apacha na katalog.
Chodziło mi o zapis błędu z loga server.log
spróbuj uruchomić mongrela z opcją “-B”
i zajrzyj do twoich logów głównego serwera (jesli posiadasz), np wspomnianego apache, nginx
monika
April 8, 2009, 6:33pm
15
wydaje mi się że w logach jest wszystko OK. Zastanawiam się jeszcze nad plikiem environment.rb.
jak powinny być ustawione :session_key i :secret ?
[code=ruby] # Your secret key for verifying cookie session data integrity.
If you change this key, all old sessions will become invalid!
Make sure the secret is at least 30 characters and all random,
no regular words or you’ll be exposed to dictionary attacks.
config.action_controller.session = {
:session_key => ‘_test_session’,
:secret => ‘7e2044bed14acc10e94a8180192a1dd99a0f5306a5484bd4620a3d535e29e5fa0c50bcf346d4a316305aa5429a367173f737b10bcbb8768c7fb31e4cee48a5c7’
}[/code]
ale to jest z 2.2.2 nie wiem czy tak samo jest w 2.1.0
Może to przez tragicznie starego Mongrela?..
monika
April 11, 2009, 6:31pm
18
ja mam tak ustawione
config.action_controller.session = {
:session_key => ‘_<%= app_name %>_session’,
:secret => ‘<%= app_secret %>’
}
ale nie wiem czy to dobrze czy źle.
Sprawdź użyj kodu który podałem.
W ogóle to erb w envorment.rb ? Wydaje mi się że nie.