Dear List, I am very new to ruby and this list. I am trying to setup unicorn to run on ubuntu 8.10. When I try to run unicorn I am getting the following error. with the following command I get the following error. Is this because I dont have a ruby rails app installed yet? unicorn at install01:/app/unicorn/config$ unicorn_rails -c config.ru I, [2009-11-03T13:05:47.609036 #30824] INFO -- : unlinking existing socket=/app/unicorn/tmp/sockets/unicorn.sock I, [2009-11-03T13:05:47.609458 #30824] INFO -- : listening on addr=/app/unicorn/tmp/sockets/unicorn.sock fd=3 I, [2009-11-03T13:05:47.609541 #30824] INFO -- : Refreshing Gem list /app/ruby/bin/unicorn_rails must be run inside RAILS_ROOT: #<LoadError: no such file to load -- config/boot> The other error i get is when I run unicorn with the command line. unicorn at install01:/app/unicorn/config$ unicorn -c config.ru {:daemonize=>false, :unicorn_options=> {:listeners=>[], :config_file=>"/app/unicorn/config/config.ru"}, :app=> #<Proc:0xb7bf2a68@/app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:123>} I, [2009-11-03T13:03:53.555204 #30820] INFO -- : unlinking existing socket=/app/unicorn/tmp/sockets/unicorn.sock I, [2009-11-03T13:03:53.555538 #30820] INFO -- : listening on addr=/app/unicorn/tmp/sockets/unicorn.sock fd=3 I, [2009-11-03T13:03:53.555596 #30820] INFO -- : Refreshing Gem list Exception `NoMethodError'' at config.ru:6 - undefined method `worker_processes'' for #<Rack::Builder:0xb7a107b8 @ins=[]> Exception `NoMethodError'' at /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:130 - undefined method `worker_processes'' for #<Rack::Builder:0xb7a107b8 @ins=[]> config.ru:6: undefined method `worker_processes'' for #<Rack::Builder:0xb7a107b8 @ins=[]> (NoMethodError) from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/builder.rb:29:in `instance_eval'' from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/builder.rb:29:in `initialize'' from config.ru:1:in `new'' from config.ru:1 from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:697:in `eval'' from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:130 from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:697:in `call'' from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:697:in `build_app!'' from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:170:in `start'' from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:20:in `run'' from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:165 from /app/ruby/bin/unicorn:19:in `load'' from /app/ruby/bin/unicorn:19 unicorn at install01:/app/unicorn/config$ Now is this error generanted because it requires a rails envoiroment. I am happy to be pointed to a website that will help me learn what is required if such a thing exists. thank you for your time regards Huet Bartels
huet bartels <hbartels at i-neda.com> wrote:> Dear List, > > I am very new to ruby and this list. > > I am trying to setup unicorn to run on ubuntu 8.10. When I try to run > unicorn I am getting the following error. > > with the following command I get the following error. Is this because I > dont have a ruby rails app installed yet?Hi Huet, Yes, you need a Ruby on Rails app to run `unicorn_rails'' and you should be able to run any Rack application with `unicorn''.> unicorn at install01:/app/unicorn/config$ unicorn_rails -c config.ru > I, [2009-11-03T13:05:47.609036 #30824] INFO -- : unlinking existing > socket=/app/unicorn/tmp/sockets/unicorn.sock > I, [2009-11-03T13:05:47.609458 #30824] INFO -- : listening on > addr=/app/unicorn/tmp/sockets/unicorn.sock fd=3 > I, [2009-11-03T13:05:47.609541 #30824] INFO -- : Refreshing Gem list > /app/ruby/bin/unicorn_rails must be run inside RAILS_ROOT: #<LoadError: > no such file to load -- config/boot>Also, your config.ru is the rackup config file, not the Unicorn config file which you would specify with the "-c" option. You only need a config.ru if you''re using a non-Rails Rack application (but you can use one with Rails, too). You don''t need to pass any switches for the config.ru, either, if it''s in ./config.ru it''ll automatically be detected and otherwise you can just pass it as the first non-option argument: unicorn production.ru Here, you''re specifying Unicorn config directives in your config.ru:> I, [2009-11-03T13:03:53.555596 #30820] INFO -- : Refreshing Gem list > Exception `NoMethodError'' at config.ru:6 - undefined method > `worker_processes'' for #<Rack::Builder:0xb7a107b8 @ins=[]> > Exception `NoMethodError'' > at /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:130 - undefined method `worker_processes'' for #<Rack::Builder:0xb7a107b8 @ins=[]> > config.ru:6: undefined method `worker_processes'' for > #<Rack::Builder:0xb7a107b8 @ins=[]> (NoMethodError)config.ru is meant to be used with all Rack-able servers (Mongrel, Thin, Passenger, Unicorn) whereas the Unicorn config file is only meant for Unicorn.> I am happy to be pointed to a website that will help me learn what is > required if such a thing exists.http://rack.rubyforge.org/ has some good links on how to setup config.ru -- Eric Wong
On Tue, Nov 3, 2009 at 4:19 AM, huet bartels <hbartels at i-neda.com> wrote:> I am trying to setup unicorn to run on ubuntu 8.10. ?When I try to run > unicorn I am getting the following error. > > with the following command I get the following error. ?Is this because I > dont have a ruby rails app installed yet?Yes. unicorn_rails must be run from RAILS_ROOT. See http://unicorn.bogomips.org/unicorn_rails_1.html> The other error i get is when I run unicorn with the command line. > > unicorn at install01:/app/unicorn/config$ unicorn -c config.ru > {:daemonize=>false, > ?:unicorn_options=> > ?{:listeners=>[], :config_file=>"/app/unicorn/config/config.ru"}, > ?:app=> > > #<Proc:0xb7bf2a68@/app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:123>} > I, [2009-11-03T13:03:53.555204 #30820] ?INFO -- : unlinking existing > socket=/app/unicorn/tmp/sockets/unicorn.sock > I, [2009-11-03T13:03:53.555538 #30820] ?INFO -- : listening on > addr=/app/unicorn/tmp/sockets/unicorn.sock fd=3 > I, [2009-11-03T13:03:53.555596 #30820] ?INFO -- : Refreshing Gem list > Exception `NoMethodError'' at config.ru:6 - undefined method > `worker_processes'' for #<Rack::Builder:0xb7a107b8 @ins=[]> > Exception `NoMethodError'' > at /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:130 - undefined method `worker_processes'' for #<Rack::Builder:0xb7a107b8 @ins=[]> > config.ru:6: undefined method `worker_processes'' for > #<Rack::Builder:0xb7a107b8 @ins=[]> (NoMethodError) > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/builder.rb:29:in `instance_eval'' > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/builder.rb:29:in `initialize'' > ? ? ? ?from config.ru:1:in `new'' > ? ? ? ?from config.ru:1 > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:697:in `eval'' > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:130 > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:697:in `call'' > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:697:in `build_app!'' > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:170:in `start'' > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/lib/unicorn.rb:20:in `run'' > > from /app/ruby.1.8.7-p174/lib/ruby/gems/1.8/gems/unicorn-0.93.4/bin/unicorn:165 > ? ? ? ?from /app/ruby/bin/unicorn:19:in `load'' > ? ? ? ?from /app/ruby/bin/unicorn:19 > unicorn at install01:/app/unicorn/config$ > > Now is this error generanted because it requires a rails envoiroment.You need a separate unicorn.rb, distinct from your config.ru when using Unicorn. It appears you are using the proper config option (worker_processes) but putting it in the wrong file (config.ru). config.ru defines your app. Unicorn runs your app. The two are interchangeable, and this is a good thing. Trying moving your unicorn specific logic into a unicorn.rb and launching it with `unicorn -c unicorn.rb config.ru` -- Chris Wanstrath http://github.com/defunkt