2010-10-13 22 views
9

Ho un'app per rails 3 (che ho aggiornato). Funziona su passeggeri e nginx ma sul mio server di produzione inizia anche con l'ambiente impostato su 'produzione'. So che mi manca qualcosa di veramente semplice, ma non riesco a capire dove ambientare l'ambiente invece di environment.rb.Rails 3 - set environment

Grazie per l'aiuto!

AGGIORNAMENTO: ok, ho imparato che posso ancora farlo con Rails.env = 'produzione'.

Sembra una specie di vecchia scuola per me. Sai un modo elegante per configurare questo forse nel Capfile o in questo modo?

risposta

6

Rails 3 è leggermente diverso da Rails 2.x in quanto ha un file config.ru, come altre applicazioni Rack.

Passenger rileva i binari come app Rack, quindi sarà necessario utilizzare RackEnv anziché RailsEnv nel vhost. È possibile impostare l'ambiente utilizzando RackEnv come da documentazione per Passenger/Nginx.

3

È possibile configurare un diverso RAILS_ENV per ogni app nel proprio vhost per nginx con passeggero. Non ho mai usato nginx ma in apache è solo una direttiva RailsEnv=development. In questo modo, ogni sito ha appena impostato, nessun problema con la configurazione di un cap task o di una variabile o altro. Vedi lo docs. Si noti che il valore predefinito è production, quindi questo dovrebbe essere già impostato per te.