views:

2354

answers:

3

How do I set the application to production mode?

Okay, this must be a no-brainer but I'm about to deploy my first Rails app and I've got everything setup properly: Ubuntu Hardy, Passenger, MySQL. However, it's still running in development mode. I've only been able to find documentation for older versions of Rails and want to make sure that I'm doing it right.

Thanks in advance.

A: 

Based on the docs you can set RailEnv. By default Passenger runs in production mode so maybe you copied RailsEnv development into your config.

Andy Gaskell
Hehe...ooohhh, you got to it first!
btelles
A: 

passenger by default runs everything in production mode unless you specify otherwise:

Passenger RailsEnv documentation

If you create a view that outputs RAILS_ENV, does it say 'development'?

  • If so, then you may have set the RAILS_ENV variable to 'development' somewhere in your environment.rb file.
  • If you're not seeing that, and are seeing other symptoms, then could you list the symptoms?
btelles
I've recently started using Rails.env rather than RAILS_ENV. No difference at all, but it feels nicer. Goes well with Rails.root too
Gareth
Thank you, Andy and btelles. There is nothing in my environment.rb regarding the Rails_ENV. Thanks for confirming that Passenger runs in production mode by default. Here's another thing, I found out. The public/index.html loads, but I get a server 500 when trying to access any controllers. I'm stumped.
If this doesn't do it you might want to create a new question, but set `config.action_controller.consider_all_requests_local = true` in your production.rb so you can see error messages.
Andy Gaskell
Yup, Andy's on it.You can also check the log files and maybe post the last few requests if they're difficult to decipher.
btelles
+3  A: 

You'll need to set the RackEnv instead of RailsEnv. Actually, I just do both (although I mightn't need to...?).

Example vhost for a Rails 2.3 app:

<VirtualHost *:80>

  ...
  RackEnv production
  RailsEnv production
  ...

</VirtualHost>
dylanfm
Thanks for the tip. I just figured out the error of my ways. It is running in production based on the RAILS_ENV in a view.
well that happened to me after upgrading passenger to 3. now i'm forced to use RackEnv don't know why
knoopx